web-dev-qa-db-fra.com

Comment déplacer une table dans un schéma dans T-SQL

Je souhaite déplacer une table dans un schéma spécifique à l'aide de T-SQL? J'utilise SQL Server 2008.

262
Lukasz
_ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;
_

Si vous souhaitez déplacer toutes les tables dans un nouveau schéma, vous pouvez utiliser le document non documenté (et être obsolète à un moment donné, mais peu probable!) _sp_MSforeachtable_ procédure stockée:

_exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"
_

Réf .: ALTER SCHEMA

SQL 2008: Comment changer le schéma de base de données en dbo

446
Mitch Wheat

Réponse courte:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

Je peux confirmer que les données du tableau restent intactes, ce qui est probablement très important :)

Réponse longue selon documents MSDN ,

ALTER SCHEMA schema_name 
   TRANSFER [ Object | Type | XML Schema Collection ] securable_name [;]

S'il s'agit d'une table (ou de tout élément en dehors d'une collection Type ou XML Schema), vous pouvez omettre l'objet Word car il s'agit de la valeur par défaut.

19
Reversed Engineer