Bagikan melalui


GANTI NAMA (Transact-SQL)

Berlaku untuk: Azure Synapse Analytics Analytics Platform System (PDW)

Mengganti nama tabel yang dibuat pengguna di Azure Synapse Analytics. Mengganti nama tabel yang dibuat pengguna, kolom dalam tabel atau database yang dibuat pengguna di Analytics Platform System (PDW).

Artikel ini hanya berlaku untuk Azure Synapse Analytics dan Analytics Platform System (PDW):

  • Untuk mengganti nama database di SQL Server, gunakan prosedur tersimpan sp_renamedb.
  • Untuk mengganti nama database di Azure SQL Database, gunakan pernyataan ALTER DATABASE (Azure SQL Database ).
  • Mengganti nama kumpulan SQL khusus mandiri (sebelumnya SQL DW) didukung. Mengganti nama kumpulan SQL khusus di ruang kerja Azure Synapse Analytics saat ini tidak didukung.
  • Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Sintaks

-- Syntax for Azure Synapse Analytics

-- Rename a table.
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name
[;]
-- Syntax for Analytics Platform System (PDW) 

-- Rename a table
RENAME OBJECT [::] [ [ database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
[;]

-- Rename a database
RENAME DATABASE [::] database_name TO new_database_name
[;]

-- Rename a column 
RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name COLUMN column_name TO new_column_name [;]

Argumen

GANTI NAMA OBJEK [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name KE new_table_name

Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Ubah nama tabel yang ditentukan pengguna. Tentukan tabel yang akan diganti namanya dengan nama satu, dua, atau tiga bagian. Tentukan tabel baru new_table_name sebagai nama satu bagian.

GANTI NAMA DATABASE [::] [ database_name KE new_database_name

Berlaku untuk: Analytics Platform System (PDW)

Ubah nama database yang ditentukan pengguna dari database_name menjadi new_database_name. Anda tidak dapat mengganti nama database menjadi salah satu nama database yang dipesan Analytics Platform System (PDW) berikut:

  • master
  • model
  • msdb
  • tempdb
  • pdwtempdb1
  • pdwtempdb2
  • DWConfiguration
  • DWDiagnostics
  • DWQueue

GANTI NAMA OBJEK [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ]table_name COLUMN_NAME KOLOM KE new_column_name

Berlaku untuk: Analytics Platform System (PDW)

Ubah nama kolom dalam tabel.

Izin

Untuk menjalankan perintah ini, Anda memerlukan izin ini:

  • UBAH izin pada tabel

Batasan dan Pembatasan

Tidak dapat mengganti nama tabel, indeks, atau tampilan eksternal

Anda tidak dapat mengganti nama tabel, indeks, atau tampilan eksternal. Alih-alih mengganti nama, Anda bisa menghilangkan tabel, indeks, atau tampilan eksternal, lalu membuatnya kembali dengan nama baru.

Tidak dapat mengganti nama tabel yang sedang digunakan

Anda tidak dapat mengganti nama tabel atau database saat sedang digunakan. Mengganti nama tabel memerlukan kunci eksklusif pada tabel. Jika tabel sedang digunakan, Anda mungkin perlu mengakhiri sesi yang menggunakan tabel. Untuk mengakhiri sesi, Anda dapat menggunakan perintah KILL. Gunakan KILL dengan hati-hati karena ketika sesi dihentikan setiap pekerjaan yang tidak dilakukan akan digulung balik. Sesi di Azure Synapse Analytics diawali oleh 'SID'. Sertakan 'SID' dan nomor sesi saat memanggil perintah KILL. Contoh ini menampilkan daftar sesi aktif atau diam lalu mengakhiri sesi 'SID1234'.

Mengganti nama pembatasan kolom

Anda tidak dapat mengganti nama kolom yang digunakan untuk distribusi tabel. Anda juga tidak dapat mengganti nama kolom apa pun dalam tabel eksternal atau tabel sementara.

Tampilan tidak diperbarui

Saat mengganti nama database, semua tampilan yang menggunakan nama database sebelumnya akan menjadi tidak valid. Perilaku ini berlaku untuk tampilan baik di dalam maupun di luar database. Misalnya, jika database Penjualan diganti namanya, tampilan yang berisi SELECT * FROM Sales.dbo.table1 akan menjadi tidak valid. Untuk mengatasi masalah ini, Anda dapat menghindari penggunaan nama tiga bagian dalam tampilan, atau memperbarui tampilan untuk mereferensikan nama database baru.

Saat mengganti nama tabel, tampilan tidak diperbarui untuk mereferensikan nama tabel baru. Setiap tampilan, di dalam atau di luar database, yang mereferensikan nama tabel sebelumnya akan menjadi tidak valid. Untuk mengatasi masalah ini, Anda dapat memperbarui setiap tampilan untuk mereferensikan nama tabel baru.

Saat mengganti nama kolom, tampilan tidak diperbarui untuk mereferensikan nama kolom baru. Tampilan akan terus menampilkan nama kolom lama hingga perubahan tampilan dilakukan. Dalam kasus tertentu, tampilan dapat menjadi tidak valid membutuhkan drop dan dibuat ulang.

Penguncian

Mengganti nama tabel mengambil kunci bersama pada objek DATABASE, kunci bersama pada objek SKEMA, dan kunci eksklusif pada tabel.

Contoh

J. Mengganti nama database

Berlaku untuk: Sistem Platform Analitik (PDW) saja

Contoh ini mengganti nama database adWorks yang ditentukan pengguna menjadi AdWorks2.

-- Rename the user defined database AdWorks
RENAME DATABASE AdWorks to AdWorks2;

Saat mengganti nama tabel, semua objek dan properti yang terkait dengan tabel diperbarui untuk mereferensikan nama tabel baru. Misalnya, definisi tabel, indeks, batasan, dan izin diperbarui. Tampilan tidak diperbarui.

B. Mengganti nama tabel

Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Contoh ini mengganti nama tabel Pelanggan menjadi Customer1.

-- Rename the customer table
RENAME OBJECT Customer TO Customer1;

RENAME OBJECT mydb.dbo.Customer TO Customer1;

Saat mengganti nama tabel, semua objek dan properti yang terkait dengan tabel diperbarui untuk mereferensikan nama tabel baru. Misalnya, definisi tabel, indeks, batasan, dan izin diperbarui. Tampilan tidak diperbarui.

C. Memindahkan tabel ke skema lain

Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Jika niat Anda adalah memindahkan objek ke skema yang berbeda, gunakan ALTER SCHEMA. Misalnya, pernyataan berikut memindahkan item tabel dari skema produk ke skema dbo.

ALTER SCHEMA dbo TRANSFER OBJECT::product.item;

D. Menghentikan sesi sebelum mengganti nama tabel

Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Anda tidak dapat mengganti nama tabel saat sedang digunakan. Penggantian nama tabel memerlukan kunci eksklusif pada tabel. Jika tabel sedang digunakan, Anda mungkin perlu mengakhiri sesi menggunakan tabel. Untuk mengakhiri sesi, Anda dapat menggunakan perintah KILL. Gunakan KILL dengan hati-hati karena ketika sesi dihentikan setiap pekerjaan yang tidak dilakukan akan digulung balik. Sesi di Azure Synapse Analytics diawali oleh 'SID'. Anda harus menyertakan 'SID' dan nomor sesi saat memanggil perintah KILL. Contoh ini menampilkan daftar sesi aktif atau diam lalu mengakhiri sesi 'SID1234'.

-- View a list of the current sessions
SELECT session_id, login_name, status
FROM sys.dm_pdw_exec_sessions
WHERE status='Active' OR status='Idle';

-- Terminate a session using the session_id.
KILL 'SID1234';

E. Mengganti nama kolom

Berlaku untuk: Analytics Platform System (PDW)

Contoh ini mengganti nama kolom FName tabel Pelanggan menjadi FirstName.

-- Rename the Fname column of the customer table
RENAME OBJECT::Customer COLUMN FName TO FirstName;

RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;

Langkah berikutnya