SQL
Zapytanie, które użyłem to:
ALTER TABLE oldtable RENAME TO newtable;
Ale daje mi błąd.
Serwer: Msg 156, poziom 15, stan 1, wiersz 1
Niepoprawna składnia w pobliżu słowa kluczowego „TO”.
sql-server
rename
alter-table
Przełącznik
źródło
źródło
.
w sobie, użyj jej[]
wokół nazwy tabeli. (Wiem, wiem, ale kropki mogą się zdarzyć ...) Np.sp_rename '[Stupid.name]', 'NewName'
Lub ze schematemsp_rename '[dbo.Stupid.name]', 'NewName'
'NewName'
polu, w przeciwnym razie twoja tabela może wyglądać podobniedbo.dbo.NewName
.CREATE SYNONYM [schema].[synonymName] FOR [schema].[tableName]
Aby zmienić nazwę kolumny:
Aby zmienić nazwę tabeli:
źródło
Korzystając ze sp_rename, która działa jak w powyższych odpowiedziach, sprawdź także, które obiekty ulegają zmianie po zmianie nazwy, które odwołują się do tej tabeli, ponieważ musisz je również zmienić
Wziąłem przykład kodu dla zależności tabeli na blogu Pinal Dave tutaj
Dlatego wszystkie te zależne obiekty również wymagają aktualizacji
Lub użyj jakiegoś dodatku, jeśli możesz, niektóre z nich mają funkcję zmiany nazwy obiektu, a wszystkie zależą również od obiektów
źródło
Jeśli spróbujesz
exec sp_rename
otrzymać błąd LockMatchID, może pomóc najpierw dodać instrukcję use [baza danych]:próbowałem
To, co musiałem zrobić, aby to naprawić, to przepisać na:
źródło
Nazwa tabeli
Kolumna
Indeks
dostępne również dla statystyk i typów danych
źródło
Oto, czego używam:
źródło
Nic z tego nie działało. Więc po prostu umieściłem dane w nowej tabeli
może przyda się komuś ...
W moim przypadku nie rozpoznałem nowego schematu, a właściciel był również dbo.
Pracował dla mnie. Znalazłem go ze skryptu wygenerowanego automatycznie podczas aktualizacji PK dla jednej z tabel. W ten sposób rozpoznał także nowy schemat.
źródło
Aby zmienić nazwę tabeli za pomocą innego schematu:
Przykład: Zmień dbo.MyTable1 na wrk.MyTable2
źródło