Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
database SQL di Microsoft Fabric
Anda dapat menonaktifkan batasan kunci asing selama transaksi INSERT dan UPDATE di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Gunakan opsi ini jika Anda tahu bahwa data baru tidak akan melanggar batasan yang ada atau jika batasan hanya berlaku untuk data yang sudah ada di database.
Pembatasan dan batasan
Setelah Anda menonaktifkan batasan ini, sisipan atau pembaruan di masa mendatang ke kolom tidak akan divalidasi terhadap kondisi batasan.
Izin Penggunaan
Memerlukan izin ALTER pada tabel tersebut.
Menggunakan SQL Server Management Studio
Untuk menonaktifkan batasan kunci asing untuk pernyataan INSERT dan UPDATE
Di Object Explorer, perluas tabel dengan batasan lalu perluas folder Kunci .
Klik kanan batasan dan pilih Ubah.
Di kisi di bawah Perancang Tabel, pilih Terapkan Pembatasan Kunci Asing dan pilih Tidak dari menu drop-down.
Pilih Tutup.
Untuk mengaktifkan kembali batasan saat diinginkan, balikkan langkah-langkah di atas. Pilih Berlakukan Batasan Kunci Asing dan pilih Ya dari menu drop-down.
Untuk mengandalkan batasan dengan memeriksa data yang ada pada relasi kunci asing, pilih Periksa Data yang Ada saat Membuat atau Mengaktifkan Ulang dan pilih Ya dari menu drop-down. Ini akan memastikan agar batasan kunci asing dipercaya.
- Jika Periksa Data yang Ada saat Pembuatan atau Dihidupkan Kembali diatur ke Tidak, kunci asing tidak memeriksa data yang ada saat dihidupkan kembali. Oleh karena itu, pengoptimal kueri tidak dapat mempertimbangkan potensi peningkatan performa. Kunci asing tepercaya direkomendasikan karena dapat digunakan untuk menyederhanakan rencana eksekusi dengan asumsi berdasarkan batasan kunci asing. Untuk memeriksa apakah kunci asing tepercaya dalam database Anda, lihat kueri sampel nanti di artikel ini.
Menggunakan Transact-SQL
Untuk menonaktifkan batasan kunci asing untuk pernyataan INSERT dan UPDATE
Di Object Explorer, sambungkan ke instans Mesin Database.
Pada bilah Standar, pilih Kueri Baru.
Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader NOCHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GO
Untuk mengaktifkan kembali batasan saat diinginkan, salin dan tempel contoh berikut ke jendela kueri dan pilih Jalankan.
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GO
Verifikasi bahwa batasan di lingkungan Anda tepercaya dan diaktifkan. Jika
is_not_trusted
= 1, maka kunci asing tidak memeriksa data yang ada saat diaktifkan kembali atau dibuat ulang. Oleh karena itu, pengoptimal kueri tidak dapat mempertimbangkan potensi peningkatan performa. Kunci asing tepercaya direkomendasikan karena dapat digunakan untuk menyederhanakan rencana eksekusi dengan asumsi berdasarkan batasan kunci asing. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.SELECT o.name, fk.name, fk.is_not_trusted, fk.is_disabled FROM sys.foreign_keys AS fk INNER JOIN sys.objects AS o ON fk.parent_object_id = o.object_id WHERE fk.name = 'FK_PurchaseOrderHeader_Employee_EmployeeID'; GO
Anda harus mengatur batasan kunci asing ke tepercaya jika data yang ada dalam tabel mematuhi batasan kunci asing. Untuk menjadikan batasan kunci asing tepercaya, gunakan skrip berikut untuk kembali mempercayai batasan kunci asing tersebut, sambil mencatat sintaks tambahan
WITH CHECK
. Salin dan tempel contoh berikut ke dalam jendela kueri dan pilih Jalankan.ALTER TABLE [Purchasing].[PurchaseOrderHeader] WITH CHECK CHECK CONSTRAINT FK_PurchaseOrderHeader_Employee_EmployeeID; GO
Langkah berikutnya
- ALTER TABLE (Transact-SQL)
- Lihat Properti Kunci Asing