Modifier les vues

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Après avoir défini une vue, vous pouvez modifier sa définition dans le moteur de base de données SQL Server sans supprimer et recréer la vue à l’aide de SQL Server Management Studio ou de Transact-SQL.

Limitations et restrictions

  • La modification d’une vue n’affecte aucun objet dépendant, tel que des procédures stockées ou des déclencheurs, sauf si la définition de la vue change de telle façon que l’objet dépendant n’est plus valide.

  • Si la vue actuellement utilisée est modifiée en utilisant ALTER VIEW, le moteur de base de données pose un verrou de schéma exclusif sur la vue. Lorsque le verrou est attribué (et qu'il n'y a aucun utilisateur actif de la vue), le moteur de base de données supprime toutes les copies de la vue du cache de procédure. Les plans existants qui font référence à la vue restent dans le cache, mais ils sont recompilés lorsqu'ils sont invoqués.

  • L"instruction ALTER VIEW peut être appliquée à des vues indexées, mais elle supprime de manière inconditionnelle tous les index de la vue.

Autorisations

Pour exécuter l'instruction ALTER VIEW, il est nécessaire de disposer au minimum de l'autorisation ALTER sur OBJECT.

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus en regard de la base de données où se trouve votre vue, puis sélectionnez le signe plus en regard du dossier Vues .

  2. Cliquez avec le bouton droit sur la vue à modifier, puis sélectionnez Conception.

  3. Dans le volet Diagramme du Concepteur de requêtes, apportez les modifications à la vue à l'aide d'une ou de plusieurs des méthodes suivantes :

    1. Activez ou désactivez les cases à cocher des éléments à ajouter ou supprimer.

    2. Cliquez avec le bouton droit dans le volet Diagramme, sélectionnez Ajouter une table..., puis les colonnes supplémentaires à ajouter à la vue dans la boîte de dialogue Ajouter une table.

    3. Cliquez avec le bouton droit sur la barre de titre de la table que vous souhaitez supprimer et sélectionnez Supprimer.

  4. Dans le menu Fichier, sélectionnez Enregistrer le nom de la vue.

Utiliser Transact-SQL

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter. L'exemple commence par créer une vue, puis la modifie à l'aide de ALTER VIEW. Une clause WHERE est ajoutée à la définition de la vue.

    USE AdventureWorks2022;
    GO
    
    -- Create a view
    CREATE VIEW HumanResources.EmployeeHireDate
    AS
    SELECT p.FirstName,
         p.LastName,
         e.HireDate
    FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
         ON e.BusinessEntityID = p.BusinessEntityID;
    
    -- Modify the view by adding a WHERE clause to limit the rows returned
    ALTER VIEW HumanResources.EmployeeHireDate
    AS
    SELECT p.FirstName,
         p.LastName,
         e.HireDate
    FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
         ON e.BusinessEntityID = p.BusinessEntityID
    WHERE HireDate < CONVERT(DATETIME, '20020101', 101);
    GO
    

Étapes suivantes