Pengidentifikasi database
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Nama objek database disebut sebagai pengidentifikasinya. Semua yang ada di Microsoft SQL Server dapat memiliki pengidentifikasi. Server, database, dan objek database, seperti tabel, tampilan, kolom, indeks, pemicu, prosedur, batasan, dan aturan, dapat memiliki pengidentifikasi. Pengidentifikasi diperlukan untuk sebagian besar objek, tetapi bersifat opsional untuk beberapa objek seperti batasan.
Pengidentifikasi objek dibuat saat objek ditentukan. Pengidentifikasi kemudian digunakan untuk mereferensikan objek. Misalnya, pernyataan berikut membuat tabel dengan pengidentifikasi TableX
, dan dua kolom dengan pengidentifikasi KeyCol
dan Description
:
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80));
Tabel ini juga memiliki batasan yang tidak disebutkan namanya. Batasan PRIMARY KEY
tidak memiliki pengidentifikasi.
Kolatasi pengidentifikasi tergantung pada tingkat di mana pengidentifikasi ditentukan. Pengidentifikasi objek tingkat instans, seperti login dan nama database, diberi kolase default instans. Pengidentifikasi objek dalam database, seperti tabel, tampilan, dan nama kolom, diberi kolase default database. Misalnya, dua tabel dengan nama yang berbeda hanya jika dapat dibuat dalam database yang memiliki kolase peka huruf besar/kecil, tetapi tidak dapat dibuat dalam database yang memiliki kolase tidak peka huruf besar/kecil.
Catatan
Nama variabel, atau parameter fungsi dan prosedur tersimpan harus mematuhi aturan untuk pengidentifikasi Transact-SQL.
Kelas pengidentifikasi
Ada dua kelas pengidentifikasi:
Pengidentifikasi reguler
Mematuhi aturan untuk format pengidentifikasi. Pengidentifikasi reguler tidak dibatasi saat digunakan dalam pernyataan Transact-SQL.USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919
Pengidentifikasi pemisah
Diapit dalam tanda kutip ganda (") atau tanda kurung siku ([ ]). Pengidentifikasi yang mematuhi aturan untuk format pengidentifikasi mungkin tidak dibatasi. Contohnya:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Pengidentifikasi yang tidak mematuhi semua aturan untuk pengidentifikasi harus dibatasi dalam pernyataan Transact-SQL. Contohnya:
USE AdventureWorks2022;
GO
CREATE TABLE [SalesOrderDetail Table] --Identifier contains a space and uses a reserved keyword.
(
[Order] [int] NOT NULL,
[SalesOrderDetailID] [int] IDENTITY(1,1) NOT NULL,
[OrderQty] [smallint] NOT NULL,
[ProductID] [int] NOT NULL,
[UnitPrice] [money] NOT NULL,
[UnitPriceDiscount] [money] NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
CONSTRAINT [PK_SalesOrderDetail_Order_SalesOrderDetailID] PRIMARY KEY CLUSTERED
([Order] ASC, [SalesOrderDetailID] ASC)
);
GO
SELECT *
FROM [SalesOrderDetail Table] --Identifier contains a space and uses a reserved keyword.
WHERE [Order] = 10; --Identifier is a reserved keyword.
Pengidentifikasi reguler dan dibatasi harus berisi dari 1 hingga 128 karakter. Untuk tabel sementara lokal, pengidentifikasi dapat memiliki maksimal 116 karakter.
Aturan untuk pengidentifikasi reguler
Nama variabel, fungsi, dan prosedur tersimpan harus mematuhi aturan berikut untuk pengidentifikasi Transact-SQL.
Karakter pertama harus salah satu dari berikut ini:
Huruf sebagaimana didefinisikan oleh Unicode Standard 3.2. Definisi huruf Unicode mencakup karakter Latin dari a hingga z, dari A hingga Z, dan juga karakter huruf dari bahasa lain.
Garis bawah (_), pada tanda (@), atau tanda angka (#).
Simbol tertentu di awal pengidentifikasi memiliki arti khusus di SQL Server. Pengidentifikasi reguler yang dimulai dengan tanda selalu menunjukkan variabel atau parameter lokal dan tidak dapat digunakan sebagai nama jenis objek lainnya. Pengidentifikasi yang dimulai dengan tanda angka menunjukkan tabel atau prosedur sementara. Pengidentifikasi yang dimulai dengan tanda angka ganda (##) menunjukkan objek sementara global. Meskipun tanda angka atau karakter tanda nomor ganda dapat digunakan untuk memulai nama jenis objek lain, kami tidak merekomendasikan praktik ini.
Beberapa fungsi Transact-SQL memiliki nama yang dimulai dengan tanda ganda (@@). Untuk menghindari kebingungan dengan fungsi-fungsi ini, Anda tidak boleh menggunakan nama yang dimulai dengan @@.
Karakter berikutnya dapat mencakup yang berikut ini:
Huruf seperti yang didefinisikan dalam Unicode Standard 3.2.
Angka desimal dari Bahasa Latin Dasar atau skrip nasional lainnya.
Tanda at (@), tanda dolar ($), tanda angka (#), atau garis bawah (_).
Pengidentifikasi tidak boleh berupa kata yang dipesan Transact-SQL. SQL Server mencadangkan versi huruf besar dan huruf kecil dari kata yang dipesan. Ketika pengidentifikasi digunakan dalam pernyataan Transact-SQL, pengidentifikasi yang tidak mematuhi aturan ini harus dibatasi oleh tanda kutip ganda atau tanda kurung. Kata-kata yang dicadangkan bergantung pada tingkat kompatibilitas database. Tingkat ini dapat diatur dengan menggunakan pernyataan ALTER DATABASE .
Spasi yang disematkan atau karakter khusus tidak diperbolehkan.
Karakter tambahan tidak diperbolehkan.
Ketika pengidentifikasi digunakan dalam pernyataan Transact-SQL, pengidentifikasi yang tidak mematuhi aturan ini harus dibatasi oleh tanda kutip ganda atau tanda kurung.
Catatan
Beberapa aturan untuk format pengidentifikasi reguler bergantung pada tingkat kompatibilitas database. Tingkat ini dapat diatur dengan menggunakan ALTER DATABASE.
Kolase katalog di Azure SQL Database
Anda tidak dapat mengubah atau mengatur kolase server logis di Azure SQL Database, tetapi Anda dapat mengonfigurasi kolase setiap database secara terpisah untuk data dalam database dan untuk katalog. Kolase katalog menentukan kolase untuk metadata sistem, seperti pengidentifikasi objek. Kedua kolase dapat ditentukan secara independen saat Anda membuat database di portal Azure, di T-SQL dengan CREATE DATABASE, di PowerShell dengan New-AzSqlDatabase.
Untuk detail dan contohnya, lihat MEMBUAT DATABASE. Tentukan kolate untuk database (COLLATE
) dan kolatasi katalog untuk metadata sistem dan pengidentifikasi objek (CATALOG_COLLATION
).
Langkah berikutnya
- ALTER TABLE (Transact-SQL)
- BUAT DATABASE (SQL Server Transact-SQL)
- CREATE DEFAULT (Transact-SQL)
- CREATE PROCEDURE (Transact-SQL)
- BUAT ATURAN (Transact-SQL)
- BUAT TABEL (Transact-SQL)
- BUAT PEMICU (Transact-SQL)
- CREATE VIEW (Transact-SQL)
- DECLARE @local_variable (Transact-SQL)
- DELETE (Transact-SQL)
- INSERT (Transact-SQL)
- Kata Kunci yang Dipesan (Transact-SQL)
- SELECT (Transact-SQL)
- UPDATE (Transact-SQL)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk