Wie verschiebe ich eine Tabelle in ein Schema in T-SQL?


Antworten:


464
ALTER SCHEMA TargetSchema 
    TRANSFER SourceSchema.TableName;

Wenn Sie alle Tabellen in ein neues Schema verschieben möchten , können Sie die undokumentierte (und irgendwann veraltete, aber unwahrscheinliche!) sp_MSforeachtableGespeicherte Prozedur verwenden:

exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"

Ref.: ALTER SCHEMA

SQL 2008: Wie ändere ich das Datenbankschema in dbo?


6
2018 und rettete mir immer noch das Leben. Vielen Dank Mitch.
ClownCoder

19

Kurze Antwort:

ALTER SCHEMA new_schema TRANSFER old_schema.table_name

Ich kann bestätigen, dass die Daten in der Tabelle intakt bleiben, was wahrscheinlich sehr wichtig ist :)

Lange Antwort gemäß MSDN-Dokumenten ,

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

Wenn es sich um eine Tabelle handelt (oder um etwas anderes als eine Typ- oder XML-Schemasammlung), können Sie das Wort Objekt weglassen, da dies die Standardeinstellung ist.


1
Warum die Ablehnung für meine richtige Antwort? Bitte überprüfen Sie meine Antwort anhand der akzeptierten Antwort, die dieselbe ist und bereits 257 positive Stimmen hat (einschließlich meiner).
Umgekehrter Ingenieur

2
Haben Sie eine positive Bewertung für die Bestätigung, dass die Daten intakt bleiben, was gerade meinen Blutdruck gerettet hat ... :)

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

4
Warum bleiben Daten in einer Tabelle nicht intakt, nur weil die Tabelle in einen anderen Schemacontainer verschoben wird?
Mitch Wheat

2
nette Namensänderung @DaveBoltman. Die Beantwortung alter Fragen ist großartig, wenn sie vorhandenen Antworten etwas hinzufügen.
Mitch Wheat
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.