Modifier des vues
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 abandonner et recréer la vue à l'aide de SQL Server Management Studio ou de Transact-SQL.
Limitations et restrictions
Modifier une vue n'affecte aucun des objets qui en dépendent, tels que les procédures stockées ou les déclencheurs, à moins que la définition de la vue ne change de telle manière qu'un objet sous-jacent ne soit 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
Dans l' Explorateur d'objets, sélectionnez le signe plus (+) en regard de la base de données dans laquelle votre vue se trouve, puis sélectionnez le signe plus (+) en regard du dossier Vues.
Cliquez avec le bouton droit sur la vue à modifier, puis sélectionnez Conception.
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 :
Activez ou désactivez les cases à cocher des éléments à ajouter ou supprimer.
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.
Cliquez avec le bouton droit sur la barre de titre de la table que vous souhaitez supprimer et sélectionnez Supprimer.
Dans le menu Fichier, sélectionnez Enregistrer le nom de la vue.
Utiliser Transact-SQL
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d’outils standard, sélectionnez Nouvelle requête.
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