ПредишенСледващото

С помощта на каскадни справочните ограничения за интегритет, можете да определите действия, които SQL Server ще вземат, когато потребителят се опитва да изтрие или актуализиране на ключ, като на този етап дори съществуващите външни ключове.

СПРАВКА клауза сътворяват изявление TABLE и ALTER TABLE изявления подкрепят При изтриване и ON UPDATE. Cascading действия също могат да бъдат определени с диалогов прозорец чуждестранни ключови взаимоотношения.

Действието по подразбиране се разбира не се предприемат действия, ако При изтриване и ON UPDATE не са уточнени.

При изтриване NO ACTION

Това показва, че когато се опитате да изтриете един ред с ключ към която външния ключ се отнася до редовете на други таблици, трябва да се докладва за грешка, но за Изтриване на извлечението да се връщам.

ON UPDATE NO ACTION

Това показва, че когато се опитате да обновите ключова стойност в чуждестранна съотнесени ключа в редовете на други таблици, трябва да се докладва за грешка, и се връщам в отчета за актуализация.

Действия CASCADE, SET NULL и настройка по подразбиране позволява изтриване и актуализиране на основните ценности, които засягат таблиците, които определят външни бутони за комуникация, което води до една маса, в която са направени промени. Ако каскадни справочните действия също са дефинирани за таблиците приемници, тогава има е показан каскаден действия ще се прилага при актуализиране или изтриване на съответните редове. КАСКАДА стойност не може да бъде определена за външни и първични ключове в тип клеймото колони.

При изтриване CASCADE

Това показва, че когато се опитате да изтриете един ред с ключ посочен от външни ключове в редовете на други таблици, всички редове, съдържащи тези външни ключове трябва да бъдат отстранени.

ON UPDATE CASCADE

Това показва, че когато се опитате да обновите ключова стойност в чуждестранна съотнесени ключа в редовете на други маси, всички стойности, които правят външния ключ също трябва да бъдат актуализирани към новата стойност на ключа.

КАСКАДА стойност не може да се уточни в случай на клеймото тип колона и е част от външната или чужд ключ.

При изтриване SET NULL

Това показва, че когато се опитате да изтриете ред с ключ, който е посочен от външни ключове в редовете на други таблици, всички стойности, които правят чуждите ключовете трябва да бъдат променени, за да NULL. За да отговарят на това ограничение, всички чуждестранни ключови колони от таблицата приемник трябва да позволяват NULL.

ON UPDATE SET NULL

Това показва, че когато се опитате да обновите ключова стойност в чуждестранна съотнесени ключа в редовете на други маси, всички стойности, които правят чуждите ключовете трябва да бъдат променени, за да NULL. За да отговарят на това ограничение, всички чуждестранни ключови колони от таблицата приемник трябва да позволяват NULL.

При изтриване SET DEFAULT

Това показва, че когато се опитате да изтриете един ред с ключ към която външния ключ се отнася до редовете на други таблици, всички стойности, които правят чуждите ключовете трябва да преминат на стойностите по подразбиране. За да отговарят на това ограничение, всички чуждестранни ключови колони от таблицата приемник, трябва да се определят от стойността по подразбиране. Ако колоната позволява NULL стойност и много стойностите по подразбиране не са изрично определени, NULL става имплицитно стойността по подразбиране за тази графа. Всички попита имот на стойност DELETE SET DEFAULT, различна от NULL, трябва да има подходящи стойности на първичния таблицата, за да се запази целостта на чуждестранните ключови ограничения.

ON UPDATE SET DEFAULT

Това показва, че когато се опитате да обновите ключова стойност в чуждестранна съотнесени ключа в редовете на други таблици, всички стойности, които правят чуждите ключовете трябва да преминат на стойността по подразбиране. За да отговарят на това ограничение, всички чуждестранни ключови колони от таблицата приемник, трябва да се определят от стойността по подразбиране. Ако колоната позволява NULL стойност и много стойностите по подразбиране не са изрично определени, NULL става имплицитно стойността по подразбиране за тази графа. Всички попита имот на стойност UPDATE SET DEFAULT, различна от NULL, трябва да има подходящи стойности на първичния таблицата, за да се запази целостта на чуждестранните ключови ограничения.

Действие При изтриване CASCADE не може да бъде посочена в таблицата, за които е определен спусъка, вместо да изтривате. В таблиците, които се определят задейства ВМЕСТО UPDATE, не могат да бъдат дадени следните стъпки: При изтриване SET NULL, ON DELETE SET DEFAULT, ON UPDATE CASCADE, ON UPDATE SET NULL и ON UDATE Задай по подразбиране.

Индивидуални изтриване или актуализиране на изявления могат да започнат серия от каскадни справочните действия. Например, базата данни съдържа три таблици: TABLEA. TableB и TableC. TableB външен ключ маса се определя с действието ON DELETE CASCADE и е свързан с първичния ключ на TABLEA на маса. Външно TableC ключ маса се определя с действието ON DELETE CASCADE и е свързана с първичен ключ маса TableB. Ако DELETE изявление изтрива редове в TABLEA маса. същата операция ще премахне всички редове в TableB на маса. в които външни ключове съвпадат с отстраняването на първичния ключ маса TABLEA. и след това - за да се отстранят всички редове в таблицата TableC. в които външни ключове съвпадат с отстраняването на първичния ключ маса TableB.

Последователност на каскадни справочните действия, които са започнати от отделни инструкции изтриване, актуализацията, трябва да се образува едно дърво без циклични референции. Не маса не трябва да се появи повече от веднъж в списъка на всички каскадни справочните действия, причинени инструкциите изтриване или актуализация. В допълнение, дървото на каскадни справочните действия за всяка от таблиците, участващи трябва да бъде само по един начин. Всеки клон в дървото е прекъсната веднага след като маса е намерена, за които е посочен конкретно действие за липса на действие или липса на действие.

Каскадни референтни действия задействат тригери СЛЕД UPDATE или след DELETE следва:

Всички каскадните справочните действия пряко причинени от първоначалните инструкции за актуализиране или за изтриване, изпълнени за пръв път.

Ако има такива СЛЕД тригери, определени за променените таблиците, тези води огън, след като всички каскадни действия. Тези води се изпълняват в обратен ред на каскадни действия. Ако се дефинират една таблица множество тригери, те се експлоатират в произволен ред, освен ако отпуснатите първия и последния тригери маса. Този ред се определя процедура sp_settriggerorder.

Ако каскадни последователност от действия, които се провеждат в таблицата, която е в непосредствена цел на актуализирате или изтриете действие, как да започнете да задейства тези работни процеси не е дефиниран. Въпреки това, една последователност винаги започва всички свои води, преди да започне да прави по-нататък.

СЛЕД спусъка маса е непосредствената цел на актуализирате или изтриете действие, тичам, независимо от това дали поне някои струни са се променили. В този случай, без значение какви други каскадни маси не са засегнати.

Ако една от предишните спусъците извърши актуализиране или за изтриване операции на други таблици, тези операции могат да причинят каскаден поредица от собствените си действия. Тези вторични последователности действие за всяка сделка обработени DELETE или UPDATE след извършване на всички флип-флоп първични последователности от действия. Този процес може да се повтори рекурсивно за последващи операции, изтриване или актуализиране на.

Операциите се създава, променя, изтриване или други езикови DDL операции вътре спусъците могат да причинят DDL задейства план. Това може да доведе до по-нататъшни операции изтриване или UPDATE, която ще започне допълнителна каскаден последователност от действия и да изпълни своите задейства.

Ако в определена последователност на каскадни референтни действия възникне грешка в тази последователност няма да се изпълнява всеки задейства след това, и за изтриване или UPDATE операция, която е създадена тази последователност ще бъде валцован обратно.

Таблица за които спусъка се определя ВМЕСТО, може да се предложи позоваванията, което показва специфична каскада ефект. Въпреки това, спусък СЛЕД мишена каскаден действие може да изпълни вмъкване, обновяване или изтриване на изявление на друга маса или вижте, че ще задейства ВМЕСТО спусък за този обект.

Подкрепете проекта - споделете линка, благодаря!