Umbenennen mehrerer Tabellen
In SQL Server ich habe eine Datenbank abc
. In dieser Datenbank habe ich Hunderte von Tabellen. Jede dieser Tabellen genannt xyz.table
Möchte ich alle ändern, die Tabellen genannt werden abc.table
.
Haben wir eine Weise, durch die ich ändern kann, die alle die Namen von xyz.table
zu abc.table
in der Datenbank abc
?
Ich bin in der Lage, um manuell den Namen ändern, indem die änderung des Schemas für jede Tabelle in abc -
- Hi. Welche version des SQL-Servers verwenden Sie? Bin ich rechts, den Sie ändern möchten-schema aller Tabellen in einer Datenbank?
- Danke @Igor suchen in. Ich bin mit sql server 2008. Du hast Recht das will ich ändern-schema aller Tabellen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Alter Schema-eine undokumentierte Gespeicherte Prozedur exec sp_MSforeachtable die im Grunde durchläuft alle Tabellen .
ändern Sie die new_schema keyword mit Ihrem neuen Schema .
Für details gehen Sie bitte über den link
sp_MSforeachtable
Alter Schema für alle Tabellen
Als andere haben darauf hingewiesen, dass die SP veraltet ist, so gibt Es einen anderen Weg, dies zu tun, indem man den Namen der Tabelle aus sys.Tabellen
xyz
schema, aber auch in einerdef
schema, und die OP verschieben möchte, nur die Tabellen aus derxyz
zuabc
?exec()
Funktion sollte vom Typnvarchar(...)
(aber das ist wirklich, wirklich nitpicky, vereinbart!)Haben, könnten Sie einen cursor ausgeführt, über alle deine Tabellen in der
xyz
schema und verschieben Sie alle diese in derabc
schema:T-SQL
- Anweisung mithilfe der integrierten gespeicherten Prozedur.xyz
und lassen Sie alles andere alleine (auf Anfrage) - können Sie "eine Linie von T-SQL" - das gleiche tun?Sadly, I have discovered instances where, under heavy load and/or with a large number of databases, the procedure can actually skip multiple catalogs with no error or warning message.
Ich gehe davon aus, dass Sie bereits erstellt haben das schema
abc
in der Datenbank.Wenn nicht, können Sie finden hier
http://www.youtube.com/watch?v=_DDgv8uek6M
http://www.quackit.com/sql_server/sql_server_2008/tutorial/sql_server_database_schemas.cfm
Ändern das schema aller Tabellen in der Datenbank, die Sie verwenden können, sind folgende system erstellt msforeachtable gespeicherte Prozedur zum umbenennen schema von jeder Tabelle mit alter schema.
xyz
schema, aber auch in einerdef
schema, und die OP verschieben möchte, nur die Tabellen aus derxyz
zuabc
?Ohne Verwendung der undokumentierten/unsupported
sp_MSforeachtable
Verfahren, hier ist eine etwas prägnante Weise zu wählen und/oder führen Sie alle notwendigen ALTER-Anweisungen für jede Tabelle, die auf dem gegebenen schema:Dies vermeidet die Verwendung eines Cursors, und verwendet Klammern, um die escape-Tabelle Namen, kann es zu Problemen mit SQL-Schlüsselwörtern.