ID Artikel: 321843 - Kajian Terakhir: 26 September 2011 - Revisi: 2.0

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

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

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.

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 MesinPenerjemahan 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  (http://support.microsoft.com/kb/321843/en-us/ )