2009-07-19 10 views
225

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

+1

Si vous devez déplacer plusieurs tables vers un nouveau schéma, voir [Renommer plusieurs tables] (http://stackoverflow.com/questions/10942901/renaming-multiple-tables) – Tony

Répondre

377
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName; 

Si vous souhaitez déplacer toutes tables dans un nouveau schéma, vous pouvez utiliser la procédure stockée sans papier sp_MSforeachtable (et d'être dépréciée à un moment donné, mais peu probable!):

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?" 

Ref .: ALTER SCHEMA

SQL 2008: How do I change db schema to dbo

12

court un swer:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name 

Je peux confirmer que les données de la table reste intacte, ce qui est probablement très important :)

Réponse longue que par MSDN docs,

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

Si c'est une table (ou n'importe quoi d'autre qu'une collection Type ou XML Schema), vous pouvez omettre le mot Object puisque c'est la valeur par défaut.

+0

Pourquoi la réponse négative pour ma réponse correcte? S'il vous plaît vérifier le mien contre la réponse acceptée, qui est la même, et a déjà 257 upvotes (y compris le mien). – DaveBoltman

+0

Avoir un upvote pour confirmer que les données restent intactes, ce qui vient d'économiser ma pression artérielle ... :) –

+3

@DaveBoltnman: vous avez entré une réponse 6 ans après la réponse acceptée et par votre propre commentaire ci-dessus "qui est le même" . –

Questions connexes