Partager via


ALTER SCHEMA (Transact-SQL)

Transfère un sécurisable d'un schéma à un autre.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

ALTER SCHEMA schema_name TRANSFER securable_name

Arguments

  • schema_name
    Nom du schéma de la base de données active dans lequel le sécurisable sera transféré. Ne peut pas être SYS ou INFORMATION_SCHEMA.
  • securable_name
    Nom composé d'une ou deux parties, qui désigne l'élément sécurisable de schéma à transférer.

Notes

Dans SQL Server 2005, les utilisateurs et les schémas sont complètement distincts. Pour plus d'informations, consultez Séparation du schéma et de l'utilisateur.

L'instruction ALTER SCHEMA ne peut être utilisée que pour transférer des sécurisables entre des schémas de la même base de données. Pour modifier ou supprimer un sécurisable au sein du même schéma, utilisez l'instruction ALTER ou DROP propre à cet élément sécurisable.

Si securable_name utilise un nom en une seule partie, les règles de résolution de nom en vigueur s'appliquent pour identifier l'emplacement du sécurisable.

Toutes les autorisations associées à cet élément sécurisable sont supprimées après le transfert du sécurisable vers le nouveau schéma. Si le propriétaire du sécurisable a été défini explicitement, il reste inchangé. Si la valeur SCHEMA OWNER a été attribuée au propriétaire du sécurisable, celui-ci reste SCHEMA OWNER ; une fois le transfert effectué, la valeur de SCHEMA OWNER est le propriétaire du nouveau schéma. L'identification principal_id du nouveau propriétaire sera NULL.

ms173423.Caution(fr-fr,SQL.90).gifAttention :
Dans SQL Server 2005, le comportement des schémas diffère du comportement dans les versions antérieures de SQL Server. Un code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut renvoyer des résultats incorrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE ou ALTER AUTHORIZATION. Dans une base de données où une de ces instructions a été utilisée, vous devez recourir aux nouveaux affichages catalogue. Les nouveaux affichages catalogue prennent en compte la séparation des entités de sécurité et des schémas introduite dans SQL Server 2005. Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

Pour transférer un sécurisable provenant d'un autre schéma, l'utilisateur actuel doit bénéficier de l'autorisation CONTROL sur le sécurisable (et non sur le schéma) et de l'autorisation ALTER sur le schéma cible.

Si le sécurisable en question est soumis à une spécification EXECUTE AS OWNER et que le propriétaire est défini à SCHEMA OWNER, l'utilisateur doit également bénéficier de l'autorisation IMPERSONATION sur le propriétaire du schéma cible.

Toutes les autorisations associées au sécurisable soumis à un transfert sont supprimées lors du déplacement de cet élément.

Exemples

L'exemple suivant modifie le schéma HumanResources en y transférant la table Address du schéma Person.

USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO

Voir aussi

Référence

CREATE SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)

Autres ressources

Séparation du schéma et de l'utilisateur

Aide et Informations

Assistance sur SQL Server 2005