Zaimportowałem kilka tabel ze starego serwera sql (2000) do mojej bazy danych z 2008 roku. Wszystkie importowane stoliki są poprzedzone moją nazwą użytkownika, na przykład: jonathan.MovieData
. W tabeli properties
jest wymieniony jonathan
jako schemat db. Kiedy piszę procedury składowane, muszę teraz umieszczać jonathan.
przed wszystkimi nazwami tabel, co jest mylące.
Jak zmienić wszystkie moje tabele na dbo zamiast jonathan?
Aktualny wynik: jonathan.MovieData
Pożądany rezultat: dbo.MovieData
sql
sql-server
database
sql-server-2008
schema
Jonathan Hall
źródło
źródło
[DOMAIN\user].[tableName]
. Ogólnie w społeczności SQL Server używane są identyfikatory cytowane w języku Transact-SQL ([
i]
), których należy unikać,"
chyba że jest to określone wymaganie.[
i]
, jak w każdym innym przypadku, gdy chcesz być precyzyjny w nazwie obiektu SQL.[domain\user123].TableName
.Możesz uruchomić następujące polecenie, które wygeneruje zestaw instrukcji ALTER sCHEMA dla wszystkich twoich talb:
Następnie musisz skopiować i uruchomić instrukcje w analizatorze zapytań.
Oto starszy skrypt, który zrobi to za Ciebie, myślę, że zmieniając właściciela obiektu. Jednak nie próbowałem tego w 2008 roku.
Mam to z tej strony .
Mówi również o zrobieniu tego samego dla przechowywanych procesów, jeśli zajdzie taka potrzeba.
źródło
sys.tables
zamiast tego używał (podzbioru sys.objects).Ref: ALTER SCHEMA
źródło
Przenieś tabelę ze schematu dbo do MySchema:
Przenieś tabelę z MySchema do schematu dbo:
źródło
Właśnie wysłałem to do podobnego pytania: Jak w sql server 2005 mogę zmienić "schemat" tabeli bez utraty danych?
Niewielka poprawa na doskonałą odpowiedź saeid za ...
Dodałem exec, aby ten kod był samowykonalny, i dodałem u góry u góry, aby móc zmienić schemat obu tabel ORAZ procedur składowanych:
Ja też musiałem przywrócić dbdump i odkryłem, że schemat nie był dbo - spędziłem godziny próbując uzyskać transfer danych Sql Server Management Studio lub Visual Studio w celu zmiany schematu docelowego ... Skończyło się na tym, że uruchomiłem to na przywróconym zrzuć na nowy serwer, aby uzyskać sposób, w jaki chciałem.
źródło
Możesz zbiorczo zmieniać schematy wielu obiektów bazy danych, jak opisano w tym poście:
Jak zmienić schemat wszystkich tabel, widoków i procedur składowanych w MSSQL
źródło
Sposób na zrobienie tego dla indywidualnej rzeczy:
zmiana schematu dbo transfer jonathan.MovieData
źródło
Miałem podobny problem, ale mój schemat zawierał odwrotny ukośnik. W takim przypadku umieść nawiasy wokół schematu.
źródło
Otwórz SQL Server jako konto SA i kliknij nowe zapytanie obok poniższych zapytań
następnie kliknij Wykonaj, przywróci cały posiadany schemat z powrotem do konta SA
źródło
ms-help: //MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/0a760138-460e-410a-a3c1-d60af03bf2ed.htm
ALTER SCHEMA nazwa_schematu TRANSFER nazwa_sekuracji
źródło