ALTERSCHEMA TargetSchema
TRANSFER SourceSchema.TableName;
Jeśli chcesz przenieść wszystkie tabele do nowego schematu, możesz użyć procedury nieudokumentowanej (i być w pewnym momencie przestarzała, ale mało prawdopodobne!) sp_MSforeachtable:
exec sp_MSforeachtable "ALTER SCHEMA TargetSchema TRANSFER ?"
Dlaczego głosowanie za moją prawidłową odpowiedzią? Proszę sprawdzić moje z zaakceptowaną odpowiedzią, która jest taka sama i ma już 257 głosów pozytywnych (w tym moje).
Odwrócony inżynier
2
Głosuję za potwierdzenie, że dane pozostają nienaruszone, co właśnie uratowało moje ciśnienie krwi ... :)
6
@DaveBoltnman: wpisałeś odpowiedź 6 lat po zaakceptowanej odpowiedzi i własnym komentarzem powyżej „to jest to samo”.
Mitch Wheat
4
dlaczego dane w tabeli nie pozostałyby nietknięte tylko dlatego, że tabela została przeniesiona do innego kontenera schematu?
Mitch Wheat
2
niezła zmiana imienia @DaveBoltman. Odpowiedzi na stare pytania są świetne, gdy dodają coś do istniejących odpowiedzi.
Odpowiedzi:
Jeśli chcesz przenieść wszystkie tabele do nowego schematu, możesz użyć procedury nieudokumentowanej (i być w pewnym momencie przestarzała, ale mało prawdopodobne!)
sp_MSforeachtable
:Ref .:
ALTER SCHEMA
SQL 2008: Jak zmienić schemat db na dbo
źródło
Krótka odpowiedź:
Mogę potwierdzić, że dane w tabeli pozostają nienaruszone, co jest prawdopodobnie dość ważne :)
Długa odpowiedź zgodnie z dokumentami MSDN ,
Jeśli jest to tabela (lub coś oprócz kolekcji typu lub schematu XML), możesz pominąć słowo Obiekt, ponieważ jest to ustawienie domyślne.
źródło