The SQL
query yang saya gunakan adalah:
ALTER TABLE oldtable RENAME TO newtable;
Tapi, itu memberi saya kesalahan.
Server: Msg 156, Level 15, Status 1, Baris 1
Sintaks salah di dekat kata kunci 'TO'.
sql-server
rename
alter-table
Beralih
sumber
sumber
.
di dalamnya, gunakan di[]
sekitar nama tabel. (Saya tahu, saya tahu, tetapi titik-titik dapat terjadi ...) Misalnyasp_rename '[Stupid.name]', 'NewName'
atau dengan skemasp_rename '[dbo.Stupid.name]', 'NewName'
'NewName'
bidang, jika tidak meja Anda mungkin terlihat sepertidbo.dbo.NewName
.CREATE SYNONYM [schema].[synonymName] FOR [schema].[tableName]
Untuk mengganti nama kolom:
Untuk mengganti nama tabel:
sumber
Saat menggunakan sp_rename yang berfungsi seperti pada jawaban di atas, periksa juga objek mana yang terpengaruh setelah penamaan ulang, yang merujuk pada tabel itu, karena Anda perlu mengubahnya juga
Saya mengambil contoh kode untuk dependensi tabel di blog Pinal Dave di sini
Jadi, semua objek dependen ini perlu diperbarui juga
Atau gunakan beberapa tambahan jika Anda bisa, beberapa dari mereka memiliki fitur untuk mengubah nama objek, dan semua tergantung, objek juga
sumber
Jika Anda mencoba
exec sp_rename
dan menerima kesalahan LockMatchID maka mungkin membantu menambahkan pernyataan penggunaan [database] terlebih dahulu:Saya mencoba
Apa yang harus saya lakukan untuk memperbaikinya adalah menulis ulang untuk:
sumber
Nama Tabel
Kolom
Indeks
juga tersedia untuk statika dan tipe data
sumber
Inilah yang saya gunakan:
sumber
Tidak ada yang berhasil dari yang diusulkan di sini .. Jadi hanya menengok data ke dalam tabel baru
mungkin akan bermanfaat bagi seseorang ..
Dalam kasus saya itu tidak mengenali skema baru juga dbo adalah pemiliknya ..
Bekerja untukku. Saya menemukannya dari skrip yang dihasilkan secara otomatis ketika memperbarui PK untuk salah satu tabel. Dengan cara ini ia mengenali skema baru juga ..
sumber
Untuk mengubah nama tabel dengan skema berbeda:
Contoh: Ubah dbo.MyTable1 menjadi wrk.MyTable2
sumber