Membuat kunci primer
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Database Azure SQL Managed Instance yang lebih baru
Anda dapat menentukan kunci utama di Mesin Database SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Membuat kunci primer secara otomatis membuat indeks berkluster unik yang sesuai. Namun, kunci utama Anda dapat ditentukan sebagai indeks non-kluster sebagai gantinya.
Sampel kode Transact-SQL dalam artikel ini menggunakan AdventureWorks2022
database sampel atau AdventureWorksDW2022
, yang dapat Anda unduh dari halaman beranda Sampel Microsoft SQL Server dan Proyek Komunitas.
Batasan
Tabel hanya dapat berisi satu PRIMARY KEY
batasan.
Semua kolom yang ditentukan dalam PRIMARY KEY
batasan harus didefinisikan sebagai NOT NULL
. Jika nullability tidak ditentukan, semua kolom yang PRIMARY KEY
berpartisipasi dalam batasan memiliki nullability yang diatur ke NOT NULL
.
Izin
Membuat tabel baru dengan kunci primer memerlukan CREATE TABLE
izin dalam database dan ALTER
izin pada skema tempat tabel sedang dibuat.
Membuat kunci primer dalam tabel yang sudah ada memerlukan ALTER
izin pada tabel.
Menggunakan SQL Server Management Studio
- Di Object Explorer, klik kanan tabel yang ingin Anda tambahkan batasan uniknya, dan pilih Desain.
- Di Desainer Tabel, pilih pemilih baris untuk kolom database yang ingin Anda tentukan sebagai kunci utama. Jika Anda ingin memilih beberapa kolom, tahan tombol CTRL saat Anda memilih pemilih baris untuk kolom lain.
- Klik kanan pemilih baris untuk kolom dan pilih Atur Kunci Primer.
Perhatian
Jika Anda ingin menentukan ulang kunci primer, hubungan apa pun dengan kunci utama yang ada harus dihapus sebelum kunci primer baru dapat dibuat. Pesan akan memperingatkan Anda bahwa hubungan yang ada akan dihapus secara otomatis sebagai bagian dari proses ini.
Kolom kunci utama diidentifikasi oleh simbol kunci utama di pemilih barisnya.
Jika kunci primer terdiri dari lebih dari satu kolom, nilai duplikat diizinkan dalam satu kolom, tetapi setiap kombinasi nilai dari semua kolom di kunci utama harus unik.
Jika Anda menentukan kunci gabungan, urutan kolom di kunci utama cocok dengan urutan kolom seperti yang ditunjukkan dalam tabel. Namun, Anda dapat mengubah urutan kolom setelah kunci utama dibuat. Untuk informasi selengkapnya, lihat Mengubah Kunci Primer.
Menggunakan Transact-SQL
Membuat kunci primer dalam tabel yang sudah ada
Contoh berikut membuat kunci primer pada kolom TransactionID
dalam AdventureWorks2022
database.
ALTER TABLE [Production].[TransactionHistoryArchive]
ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);
Membuat kunci primer dalam tabel baru
Contoh berikut membuat tabel dan menentukan kunci utama pada kolom TransactionID
dalam AdventureWorks2022
database.
CREATE TABLE [Production].[TransactionHistoryArchive1] (
TransactionID INT IDENTITY(1, 1) NOT NULL,
CONSTRAINT PK_TransactionHistoryArchive1_TransactionID PRIMARY KEY CLUSTERED (TransactionID)
);
Membuat kunci primer non-kluster dengan indeks berkluster terpisah dalam tabel baru
Contoh berikut membuat tabel dalam AdventureWorks2022
database, dengan kunci primer non-kluster pada kolom CustomerID
. Kemudian, ia menambahkan indeks berkluster pada TransactionID
.
Buat tabel untuk menambahkan indeks berkluster.
CREATE TABLE [Production].[TransactionHistoryArchive1] ( CustomerID UNIQUEIDENTIFIER DEFAULT NEWSEQUENTIALID(), TransactionID INT IDENTITY(1, 1) NOT NULL, CONSTRAINT PK_TransactionHistoryArchive1_CustomerID PRIMARY KEY NONCLUSTERED (CustomerID) );
Sekarang tambahkan indeks berkluster.
CREATE CLUSTERED INDEX CIX_TransactionID ON [Production].[TransactionHistoryArchive1] (TransactionID);