ALTER VIEW (Transact-SQL)ALTER VIEW (Transact-SQL)

S’APPLIQUE À : OuiSQL Server OuiAzure SQL Database OuiAzure Synapse Analytics (SQL DW) NonParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Modifie une vue précédemment créée.Modifies a previously created view. Inclut une vue indexée.This includes an indexed view. ALTER VIEW n'affecte pas les procédures stockées ou déclencheurs dépendants et ne modifie pas les autorisations.ALTER VIEW does not affect dependent stored procedures or triggers and does not change permissions.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ]   
[ WITH <view_attribute> [ ,...n ] ]   
AS select_statement   
[ WITH CHECK OPTION ] [ ; ]  
  
<view_attribute> ::=   
{   
    [ ENCRYPTION ]  
    [ SCHEMABINDING ]  
    [ VIEW_METADATA ]       
}   

ArgumentsArguments

schema_nameschema_name
Nom du schéma auquel appartient la vue.Is the name of the schema to which the view belongs.

view_nameview_name
Vue à modifier.Is the view to change.

columncolumn
Nom(s) d'une ou de plusieurs colonnes séparées par des virgules, devant faire partie de la vue donnée.Is the name of one or more columns, separated by commas, that are to be part of the specified view.

Important

Les autorisations d'une colonne sont maintenues uniquement si le nom de la colonne reste le même avant et après l'exécution de l'instruction ALTER VIEW.Column permissions are maintained only when columns have the same name before and after ALTER VIEW is performed.

Notes

Dans les colonnes de la vue, les autorisations pour un nom de colonne s'appliquent d'un bout à l'autre d'une instruction CREATE VIEW ou ALTER VIEW, quelle que soit la source des données sous-jacentes.In the columns for the view, the permissions for a column name apply across a CREATE VIEW or ALTER VIEW statement, regardless of the source of the underlying data. Par exemple, si des autorisations sont accordées sur la colonne SalesOrderID dans une instruction CREATE VIEW, une instruction ALTER VIEW peut renommer la colonne SalesOrderID, en OrderRef par exemple, et continuer de disposer des autorisations associées à la vue en utilisant SalesOrderID.For example, if permissions are granted on the SalesOrderID column in a CREATE VIEW statement, an ALTER VIEW statement can rename the SalesOrderID column, such as to OrderRef, and still have the permissions associated with the view using SalesOrderID.

ENCRYPTIONENCRYPTION
S’applique à : SQL Server 2008SQL Server 2008 et versions ultérieures et Azure SQL DatabaseAzure SQL Database.Applies to: SQL Server 2008SQL Server 2008 and later and Azure SQL DatabaseAzure SQL Database.

Chiffre les entrées dans des sys.syscomments contenant le texte de l’instruction ALTER VIEW.Encrypts the entries in sys.syscomments that contain the text of the ALTER VIEW statement. L'utilisation de WITH ENCRYPTION évite la publication de la vue dans le cadre de la réplication SQL Server.WITH ENCRYPTION prevents the view from being published as part of SQL Server replication.

SCHEMABINDINGSCHEMABINDING
Lie la vue au schéma des tables sous-jacentes ou des autres tables.Binds the view to the schema of the underlying table or tables. Lorsque SCHEMABINDING est spécifié, les tables de base ne peuvent pas être modifiées d'une manière susceptible d'affecter la définition de la vue.When SCHEMABINDING is specified, the base tables cannot be modified in a way that would affect the view definition. La définition de la vue proprement dite doit d'abord être modifiée ou supprimée pour éliminer les dépendances de la table à modifier.The view definition itself must first be modified or dropped to remove dependencies on the table to be modified. Quand vous utilisez l’argument SCHEMABINDING, select_statement doit comprendre les noms en deux parties (schema . object) des tables, des vues ou des fonctions définies par l’utilisateur référencées.When you use SCHEMABINDING, the select_statement must include the two-part names (schema.object) of tables, views, or user-defined functions that are referenced. Tous ces objets référencés doivent se trouver dans la même base de données.All referenced objects must be in the same database.

Les vues ou tables impliquées dans une vue créée avec la clause SCHEMABINDING ne peuvent pas être supprimées, sauf si cette vue perd, à la suite de sa suppression ou de sa modification, la liaison au schéma.Views or tables that participate in a view created with the SCHEMABINDING clause cannot be dropped, unless that view is dropped or changed so that it no longer has schema binding. Dans le cas contraire, le Moteur de base de donnéesDatabase Engine génère une erreur.Otherwise, the Moteur de base de donnéesDatabase Engine raises an error. En outre, les instructions ALTER TABLE portant sur des tables impliquées dans des vues liées au schéma échouent si elles affectent la définition des vues.Also, executing ALTER TABLE statements on tables that participate in views that have schema binding fail if these statements affect the view definition.

VIEW_METADATAVIEW_METADATA
Indique que l'instance de SQL ServerSQL Server retourne aux interfaces de programmation d'applications (API) DB-Library, ODBC et OLE DB les informations de métadonnées sur la vue, plutôt que sur la ou les tables de base, lorsque des métadonnées en mode lecture sont sollicitées pour une requête qui fait référence à la vue.Specifies that the instance of SQL ServerSQL Server will return to the DB-Library, ODBC, and OLE DB APIs the metadata information about the view, instead of the base table or tables, when browse-mode metadata is being requested for a query that references the view. Les métadonnées en mode de navigation sont des métadonnées supplémentaires que l'instance du Moteur de base de donnéesDatabase Engine retourne aux API DB-Library, ODBC et OLE DB côté client.Browse-mode metadata is additional metadata that the instance of Moteur de base de donnéesDatabase Engine returns to the client-side DB-Library, ODBC, and OLE DB APIs. Ces métadonnées permettent aux API clientes d'implémenter des curseurs clients pouvant être mis à jour.This metadata enables the client-side APIs to implement updatable client-side cursors. Les métadonnées en mode Parcourir comprennent des informations sur la table de base à laquelle appartiennent les colonnes du jeu de résultats.Browse-mode metadata includes information about the base table that the columns in the result set belong to.

Dans le cas d'une vue créée par le biais de VIEW_METADATA, les métadonnées en mode Parcourir retournent le nom de la vue, et non celui de la table de base, lors de la description des colonnes de la vue comprise dans le jeu de résultats.For views created with VIEW_METADATA, the browse-mode metadata returns the view name and not the base table names when it describes columns from the view in the result set.

Quand une vue est créée à l’aide de WITH VIEW_METADATA, toutes ses colonnes, à l’exception de la colonne timestamp, peuvent être mises à jour si la vue comporte les déclencheurs INSERT ou UPDATE INSTEAD OF.When a view is created by using WITH VIEW_METADATA, all its columns, except a timestamp column, are updatable if the view has INSERT or UPDATE INSTEAD OF triggers. Pour plus d’informations, consultez la section Notes dans CREATE VIEW (Transact-SQL).For more information, see the Remarks section in CREATE VIEW (Transact-SQL).

ASAS
Actions que la vue doit entreprendre.Are the actions the view is to take.

select_statementselect_statement
Instruction SELECT qui définit la vue.Is the SELECT statement that defines the view.

WITH CHECK OPTIONWITH CHECK OPTION
Oblige toutes les instructions de modification de données exécutées sur la vue à respecter les critères définis dans select_statement.Forces all data modification statements that are executed against the view to follow the criteria set within select_statement.

NotesRemarks

Pour plus d’informations sur ALTER VIEW, consultez la section Notes dans CREATE VIEW (Transact-SQL).For more information about ALTER VIEW, see Remarks in CREATE VIEW (Transact-SQL).

Notes

Si la définition précédente de la vue à été créée à l'aide des options WITH ENCRYPTION ou CHECK OPTION, ces options doivent figurer dans l'instruction ALTER VIEW pour être activées.If the previous view definition was created by using WITH ENCRYPTION or CHECK OPTION, these options are enabled only if they are included in ALTER VIEW.

Si la vue actuellement utilisée est modifiée en utilisant ALTER VIEW, le Moteur de base de donnéesDatabase Engine pose un verrou de schéma exclusif sur la vue.If a view currently used is modified by using ALTER VIEW, the Moteur de base de donnéesDatabase Engine takes an exclusive schema lock on the view. Lorsque le verrou est attribué (et qu'il n'y a aucun utilisateur actif de la vue), le Moteur de base de donnéesDatabase Engine supprime toutes les copies de la vue du cache de procédure.When the lock is granted, and there are no active users of the view, the Moteur de base de donnéesDatabase Engine deletes all copies of the view from the procedure cache. Les plans existants qui font référence à la vue restent dans le cache, mais ils sont recompilés lorsqu'ils sont invoqués.Existing plans referencing the view remain in the cache but are recompiled when invoked.

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.ALTER VIEW can be applied to indexed views; however, ALTER VIEW unconditionally drops all indexes on the view.

AutorisationsPermissions

Pour exécuter l'instruction ALTER VIEW, il est nécessaire de disposer au minimum de l'autorisation ALTER sur OBJECT.To execute ALTER VIEW, at a minimum, ALTER permission on OBJECT is required.

ExemplesExamples

Cet exemple crée une vue qui contient tous les employés et leurs dates d'embauche, appelée EmployeeHireDate.The following example creates a view that contains all employees and their hire dates called EmployeeHireDate. Des autorisations sont accordées à la vue, mais les conditions ayant changé, il est nécessaire de sélectionner des employés dont la date d'embauche tombe avant une certaine date.Permissions are granted to the view, but requirements are changed to select employees whose hire dates fall before a certain date. Ensuite, l'instruction ALTER VIEW est utilisée pour remplacer la vue.Then, ALTER VIEW is used to replace the view.

USE AdventureWorks2012 ;  
GO  
CREATE VIEW HumanResources.EmployeeHireDate  
AS  
SELECT p.FirstName, p.LastName, e.HireDate  
FROM HumanResources.Employee AS e JOIN Person.Person AS  p  
ON e.BusinessEntityID = p.BusinessEntityID ;  
GO  
  

La vue doit être modifiée pour inclure uniquement les employés qui avaient été embauchés avant l'année 2002.The view must be changed to include only the employees that were hired before 2002. Si ALTER VIEW n'est pas utilisée mais que la vue est supprimée et recréée, l'instruction GRANT précédemment utilisée et toutes les autres instructions liées aux autorisations appartenant à cette vue doivent être entrées à nouveau.If ALTER VIEW is not used, but instead the view is dropped and re-created, the previously used GRANT statement and any other statements that deal with permissions pertaining to this view must be re-entered.

ALTER VIEW HumanResources.EmployeeHireDate  
AS  
SELECT p.FirstName, p.LastName, e.HireDate  
FROM HumanResources.Employee AS e JOIN Person.Person AS p  
ON e.BusinessEntityID = p.BusinessEntityID  
WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;  
GO  
  

Voir aussiSee Also

CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE VIEW (Transact-SQL) CREATE VIEW (Transact-SQL)
DROP VIEW (Transact-SQL) DROP VIEW (Transact-SQL)
Créer une procédure stockée Create a Stored Procedure
SELECT (Transact-SQL) SELECT (Transact-SQL)
EVENTDATA (Transact-SQL) EVENTDATA (Transact-SQL)
Modifier le schéma dans les bases de données de publicationMake Schema Changes on Publication Databases