Pesan galat 1785 terjadi ketika Anda membuat kendala kunci asing yang dapat menyebabkan beberapa cascade jalan

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 321843 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Anda mungkin menerima pesan galat berikut ketika Anda membuat kendala kunci asing:
Server: Msg 1785, tingkat 16, negara bagian 1, baris 1 Memperkenalkan kunci asing kendala 'fk_two' di tabel 'table2' dapat menyebabkan siklus atau beberapa cascade jalan. Menentukan Hapus tidak ada tindakan atau tindakan tidak UPDATE ON, atau memodifikasi batasan kunci asing lainnya. Server: Msg 1750, tingkat 16, negara bagian 1, baris 1 Tidak dapat membuat kendala. Melihat kesalahan sebelumnya.

PENYEBAB

Anda menerima pesan galat ini karena dalam SQL Server, meja tidak dapat muncul lebih dari satu kali dalam daftar semua cascading referensial tindakan yang dimulai oleh DELETE atau UPDATE pernyataan. Sebagai contoh, pohon cascading referensial tindakan harus hanya memiliki satu jalur ke meja tertentu pada pohon referensial tindakan cascading.

TEKNIK PEMECAHAN MASALAH

Untuk mengatasi masalah ini, tidak membuat kunci asing yang akan membuat lebih dari satu jalur ke tabel daftar cascading referensial tindakan.

Anda dapat menerapkan referensial integritas dalam beberapa cara. Deklaratif referensial integritas (DRI) adalah cara paling dasar, tetapi juga cara yang paling fleksibel. Jika Anda membutuhkan lebih banyak fleksibilitas, tetapi Anda masih ingin tingkat integritas yang tinggi, Anda dapat menggunakan memicu sebaliknya.

INFORMASI LEBIH LANJUT

Dalam kode contoh berikut adalah contoh dari upaya penciptaan kunci asing yang menghasilkan pesan kesalahan:

Use tempdb
go
create table table1 (user_ID integer not null primary key, user_name
char(50) not null)
go

create table table2 (author_ID integer not null primary key, author_name
char(50) not null, lastModifiedBy integer not null, addedby integer not
null)

go

alter table table2 add constraint fk_one foreign key (lastModifiedby)
references table1 (user_ID) on delete cascade on update cascade
go
alter table table2 add constraint fk_two foreign key (addedby)
references table1(user_ID) on delete no action on update cascade
go
--this fails with the error because it provides a second cascading path to table2.

alter table table2 add constraint fk_two foreign key (addedby)
references table1 (user_ID) on delete no action on update no action
go
-- this works.
				

REFERENSI

Untuk informasi lebih lanjut, silakan lihat topik "Cascading referensial integritas kendala" dalam SQL Server 2000 buku Online.

Properti

ID Artikel: 321843 - Kajian Terakhir: 26 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbbug kbpending kbprb kbprogramming kbmt KB321843 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:321843

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com