Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana batasan kunci asing dapat dinonaktifkan sementara menggunakan T-SQL?

Jika Anda ingin menonaktifkan semua batasan dalam database, jalankan saja kode ini:

-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"

Untuk mengaktifkannya kembali, jalankan:(cetakan tentu saja opsional dan hanya mencantumkan tabel)

-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"

Saya merasa berguna ketika mengisi data dari satu database ke database lainnya. Ini adalah pendekatan yang jauh lebih baik daripada menjatuhkan batasan. Seperti yang Anda sebutkan, itu berguna saat menjatuhkan semua data dalam database dan mengisinya kembali (katakanlah di lingkungan pengujian).

Jika Anda menghapus semua data, Anda mungkin menemukan solusi ini berguna.

Terkadang juga berguna untuk menonaktifkan semua pemicu, Anda dapat melihat solusi lengkapnya di sini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Periksa Status Semua Pesan Database Database di SQL Server (T-SQL)

  2. Sertakan bulan yang hilang dalam kueri Grup Berdasarkan

  3. Ketahanan Tertunda di SQL Server 2014

  4. Gunakan @@IDENTITY untuk Mengembalikan Nilai Identitas yang Disisipkan Terakhir di SQL Server

  5. SQL:Pilih kolom dengan nilai NULL saja