2009-07-19 10 views
225

Ich möchte eine Tabelle in ein bestimmtes Schema mit T-SQL verschieben? Ich bin mit SQL Server 2008.Wie verschiebe ich eine Tabelle in ein Schema in T-SQL

+1

Wenn Sie mehrere Tabellen in ein neues Schema verschieben müssen, siehe [Mehrere Tabellen umbenennen] (http://stackoverflow.com/questions/10942901/renaming-multiple-tables) – Tony

Antwort

377
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName; 

Wenn Sie alle Tabellen in ein neues Schema verschieben möchten, können Sie die undokumentierte verwenden sp_MSforeachtable gespeicherte Prozedur (und irgendwann veraltet zu sein, aber unwahrscheinlich!):

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?" 

Ref .: ALTER SCHEMA

SQL 2008: How do I change db schema to dbo

12

Kurz ein swer:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name 

ich, dass die Daten in der Tabelle intakt bleibt bestätigen kann, was wohl ziemlich wichtig ist :)

Lange Antwort per MSDN docs,

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

Wenn es eine Tabelle ist (oder irgendetwas neben einer Typ- oder XML-Schemasammlung), können Sie das Wort Objekt auslassen, da dies die Standardeinstellung ist.

+0

Warum der Downvote für meine richtige Antwort? Bitte überprüfen Sie meine gegen die angenommene Antwort, die die gleiche ist, und hat bereits 257 Upvotes (einschließlich meiner). – DaveBoltman

+0

Haben Sie ein upvote für die Bestätigung der Daten intakt, die nur meinen Blutdruck gespeichert ... :) –

+3

@DaveBoltnman: Sie haben eine Antwort eingegeben 6 Jahre nach der angenommenen Antwort und durch Ihren eigenen Kommentar oben "das ist das gleiche" . –