Chybová zpráva 1785 dochází při vytvoření omezení FOREIGN KEY může způsobit více cest kaskády

Překlady článku Překlady článku
ID článku: 321843 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při vytvoření omezení FOREIGN KEY, obdržet následující chybovou zprávu:
Server: Zpráva 1785, Level 16 1 stav linky 1 Introducing FOREIGN KEY omezení 'fk_two' v tabulce Tabulka2 způsobit cykly nebo více cest kaskády. Určit ON DELETE ne akce nebo ON UPDATE NO akce nebo upravit jiných omezení FOREIGN KEY. Server: Zpráva 1750, Level 16 1 stav linky 1 nelze vytvořit omezení. Viz předchozí chyby.

Příčina

Protože SQL Server tabulky nemůže objevit více než jednou v seznamu všechny kaskádové referenční akce, které jsou zahájeny DELETE nebo příkazu UPDATE se zobrazí tato chybová zpráva. Například stromu kaskádové referenční akce musí obsahovat pouze jednu cestu určitou tabulku kaskádové stromu referenční akce.

Jak potíže obejít

Tento problém vyřešit, nevytvářejte cizí klíč, vytvořit více než jednu cestu do tabulky v seznamu kaskádové referenční akce.

Vynutit referenční integritu několika způsoby. Deklarativní referenční integrity (DRI) představuje nejzákladnější způsob, ale je také nejméně flexibilní způsob. Pokud potřebujete větší flexibilitu, ale stále chcete vysoký stupeň integrity, můžete použít aktivační události.

Další informace

Následující ukázkový kód je příkladem pokus o vytvoření FOREIGN KEY, který generuje chybovou zprávu:

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.
				

Odkazy

Další informace naleznete v tématu "Kaskádové referenční integrity omezení" v SQL Server 2000 Books Online.

Vlastnosti

ID článku: 321843 - Poslední aktualizace: 2. listopadu 2007 - Revize: 3.4
Informace v tomto článku jsou určeny pro produkt:
  • 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 2000 Desktop Engine (Windows)
  • 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
Klíčová slova: 
kbmt kbbug kbpending kbprb kbprogramming KB321843 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:321843

Dejte nám zpětnou vazbu

 

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