Megosztás a következőn keresztül:


Idegenkulcs-kapcsolatok módosítása

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Az SQL Serveren lévő kapcsolatok külső kulcsoldalát az SQL Server Management Studio vagy a Transact-SQL használatával módosíthatja. Egy tábla idegen kulcsának módosítása megváltoztatja, hogy mely oszlopok kapcsolódnak az elsődleges kulcs táblájának oszlopaihoz.

Ebben a témakörben

Mielőtt hozzákezdene

Korlátozások és korlátozások

Az új idegenkulcs-oszlopnak meg kell egyeznie annak az elsődleges kulcsoszlopnak az adattípusával és méretével, amelyhez kapcsolódik, az alábbi kivételekkel:

  • Egy karakter oszlop vagy egy sysname oszlop összekapcsolható egy varchar oszloppal.

  • Egy bináris oszlop varbináris oszlophoz kapcsolódhat.

  • Az alias adattípus az alaptípusához kapcsolódhat.

Biztonság

Permissions

Az ALTER engedély szükséges a táblán való módosításhoz.

Az SQL Server Management Studio használata

Idegen kulcs módosítása

  1. Az Objektumkezelőben bontsa ki a táblát, amely tartalmazza az idegen kulcsot, majd bontsa ki a Kulcsokszekciót.

  2. Kattintson a jobb gombbal a módosítani kívánt idegen kulcsra, és válassza a módosítása lehetőséget.

  3. Az Idegenkulcs-kapcsolatok párbeszédpanelen az alábbi módosításokat hajthatja végre.

    Kijelölt kapcsolat
    A meglévő kapcsolatok listája. Válasszon ki egy kapcsolatot a jobb oldali rács tulajdonságainak megjelenítéséhez. Ha a lista üres, nincs kapcsolat definiálva a táblához.

    Add
    Hozzon létre egy új kapcsolatot. A tábla- és oszlopspecifikációkat a kapcsolat érvényességéhez be kell állítani.

    Delete
    Törölje a kijelölt kapcsolatot a Kijelölt kapcsolatok listában. A kapcsolat hozzáadásának megszakításához használja ezt a gombot a kapcsolat eltávolításához.

    Általános kategória
    Nyissa meg a meglévő adatok létrehozás vagy újbóli engedélyezés során történő ellenőrzéséhez és tekintse meg a táblák és oszlopok specifikációit.

    Meglévő adatok ellenőrzése létrehozáskor vagy újraengedélyezéskor
    A korlátozás megkötése vagy újra engedélyezése előtt, ellenőrizze, hogy a tábla összes meglévő adata megfelel-e a megkötésnek.

    Táblák és oszlopok specifikációi kategória
    Bontsa ki, hogy mely oszlopok közül melyik táblák működnek idegen kulcsként és elsődleges (vagy egyedi) kulcsként a kapcsolatban. Az értékek szerkesztéséhez vagy definiálásához kattintson a tulajdonságmező jobb oldalán található három pontra (...).

    idegenkulcs-alaptábla
    Azt jeleníti meg, hogy melyik tábla tartalmazza a kijelölt kapcsolatban idegen kulcsként működő oszlopot.

    Idegen kulcs oszlopok
    Azt jeleníti meg, hogy melyik oszlop működik idegen kulcsként a kijelölt kapcsolatban.

    elsődleges/egyedi kulcsalaptábla
    Azt jeleníti meg, hogy melyik tábla tartalmazza a kijelölt kapcsolat elsődleges (vagy egyedi) kulcsaként működő oszlopot.

    elsődleges/egyedi kulcsoszlopok
    Megjeleníti, hogy melyik oszlop szolgál elsődleges (vagy egyedi) kulcsként a kiválasztott kapcsolatban.

    Identitáskategória
    Bontsa ki, hogy megjelenjenek a Név és Leírástulajdonságmezői.

    Name
    A kapcsolat nevét jeleníti meg. Új kapcsolat létrehozásakor a rendszer az Table Designeraktív ablakában lévő tábla alapján adja meg az alapértelmezett nevet. A nevet bármikor módosíthatja.

    Description
    Írja le a kapcsolatot. Részletesebb leírás írásához kattintson az Leírás elemre, majd kattintson a tulajdonságmező jobb oldalán megjelenő három pontra (...). Ez nagyobb területet biztosít a szöveg írásához.

    Táblatervező kategória
    Nyissa meg a Meglévő adatok ellenőrzése létrehozáskor vagy újraengedélyezéskor, és Replikálás erőltetése információinak megjelenítéséhez.

    Kényszerítés replikációra
    Azt jelzi, hogy kényszerítse-e a korlátozást, ha egy replikációs ügynök beszúrást, frissítést vagy törlést hajt végre ezen a táblán.

    Külső kulcs kényszerének kényszerítése
    Adja meg, hogy engedélyezettek-e a változások a kapcsolat oszlopainak adataiban, ha ezek a módosítások érvénytelenné tennék az idegenkulcs-kapcsolat integritását. Ha nem szeretné engedélyezni az ilyen módosításokat, válassza az Igen lehetőséget, és ha engedélyezni szeretné őket, válassza Nem lehetőséget.

    Specifikációkategória az INSERT és UPDATE műveletekhez
    Bontsa ki a Törlési szabály és a Frissítési szabály közötti kapcsolat adatait.

    Szabály törlése
    Adja meg, mi történik, ha egy felhasználó idegenkulcs-kapcsolatban lévő adatokkal próbál törölni egy sort:

    • Nincs művelet Hibaüzenet jelzi a felhasználónak, hogy a törlés nem engedélyezett, és a TÖRLÉS vissza lesz állítva.

    • Kaszkád Töröl minden sort, amely adatokat tartalmaz az idegenkulcs-kapcsolatban. Ne adja meg a CASCADE értéket, ha a tábla logikai rekordokat használó egyesítési kiadványban szerepel.

    • Null érték beállítása Null értékre állítja az értéket, ha a tábla összes idegenkulcs-oszlopa elfogadja a null értékeket.

    • Alapértelmezett beállítása Az értéket az oszlophoz megadott alapértelmezett értékre állítja be, ha a tábla minden idegenkulcs-oszlopához tartoznak alapértelmezett értékek.

    Szabály frissítése
    Adja meg, hogy mi történik, ha egy felhasználó idegenkulcs-kapcsolatban lévő adatokkal próbál frissíteni egy sort:

    • Nincs művelet Hibaüzenet jelzi a felhasználónak, hogy a frissítés nem engedélyezett, és a frissítés vissza lesz állítva.

    • Kaszkád Frissíti az összes sort, amely az idegen kulcs kapcsolatában érintett adatokat tartalmazza. Ne adja meg a CASCADE értéket, ha a tábla logikai rekordokat használó egyesítési kiadványban szerepel.

    • Null érték beállítása Null értékre állítja az értéket, ha a tábla összes idegenkulcs-oszlopa elfogadja a null értékeket.

    • Alapértelmezett beállítás Az oszlop értékét az alapértelmezett értékre állítja, ha a tábla összes idegenkulcs-oszlopa rendelkezik alapértelmezett értékkel.

  4. A Fájl menüben kattintson táblanév mentésegombra.

Transact-SQL használata

Idegen kulcs módosítása

Ha a Transact-SQL használatával szeretne módosítani egy IDEGEN KULCS kényszert, először törölnie kell a meglévő FOREIGN KEY kényszert, majd újra létre kell hoznia az új definícióval. További információkért lásd a Külföldi kulcskapcsolatok törlése és a Külföldi kulcskapcsolatok létrehozásacímű részt.