Sdílet prostřednictvím


Úprava vztahů cizího klíče

platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL Database v Microsoft Fabric

Cizí klíč relace v SQL Serveru můžete upravit pomocí aplikace SQL Server Management Studio nebo jazyka Transact-SQL. Úprava cizího klíče tabulky mění sloupce propojené se sloupci v tabulce primárního klíče.

v tomto tématu

Než začnete

Omezení a restrikce

Nový sloupec cizího klíče se musí shodovat s datovým typem a velikostí sloupce primárního klíče, ke kterému se vztahuje, s těmito výjimkami:

  • Sloupec char nebo sloupec sysname může souviset s varchar sloupcem.

  • Binární sloupec může souviset s varbinárním sloupcem.

  • Datový typ aliasu může souviset s jeho základním typem.

Bezpečnost

Dovolení

Vyžaduje oprávnění ALTER na tabulce.

Použití aplikace SQL Server Management Studio

Úprava cizího klíče

  1. V Object Explorerrozbalte tabulku s cizím klíčem a potom rozbalte Klíče.

  2. Klikněte pravým tlačítkem myši na cizí klíč, který chcete upravit, a vyberte Upravit.

  3. V dialogovém okně Vztahy cizích klíčů můžete provést následující úpravy.

    Vybraný vztah
    Zobrazí seznam existujících relací. Vyberte relaci, která zobrazí její vlastnosti v mřížce vpravo. Pokud je seznam prázdný, nebyly pro tabulku definovány žádné relace.

    Přidat
    Vytvořte novou relaci. Než bude relace platná, musí být nastaveny specifikace tabulek a sloupců a.

    Smazat
    Odstraňte relaci vybranou v seznamu Vybrané relace. Pokud chcete zrušit přidání relace, pomocí tohoto tlačítka odeberte relaci.

    Obecná Kategorie
    Rozbalením zobrazíte Kontrola existujících dat při vytváření nebo opětovném povolení a tabulky a specifikace sloupců.

    Kontrola existujících dat při vytváření nebo znovupovolení
    Ověřte všechna existující data v tabulce oproti omezení před vytvořením nebo znovu povolením daného omezení.

    Specifikace kategorií tabulek a sloupců
    Rozbalte, abyste zobrazili, které sloupce z jakých tabulek fungují jako cizí klíč a které jako primární (nebo jedinečný) klíč v relaci. Chcete-li tyto hodnoty upravit nebo definovat, klikněte na tlačítko se třemi tečky (...) napravo od pole vlastnosti.

    Základní tabulka cizího klíče
    Zobrazuje, která tabulka obsahuje sloupec, který ve vybrané relaci funguje jako cizí klíč.

    sloupce cizího klíče
    Zobrazuje, který sloupec ve vybrané relaci funguje jako cizí klíč.

    Základová tabulka primárního/unikátního klíče
    Zobrazuje, která tabulka obsahuje sloupec fungující jako primární (nebo jedinečný) klíč ve vybrané relaci.

    Sloupce Primárního/Jedinečného Klíče
    Zobrazuje, který sloupec funguje jako primární (nebo jedinečný) klíč ve vybrané relaci.

    kategorie identity
    Rozbalením zobrazíte pole vlastností pro Název a Popis.

    názvu
    Zobrazuje název relace. Když se vytvoří nová relace, je jí přiřazeno výchozí jméno založené na tabulce v aktivním okně v Návrhář tabulky. Název můžete kdykoli změnit.

    popis
    Popište vztah. Pokud chcete napsat podrobnější popis, klikněte na Popis a potom klikněte na tři tečky (...), které se zobrazí napravo od pole vlastnosti. To poskytuje větší oblast, ve které se má psát text.

    kategorie návrháře tabulky
    Rozbalte pro zobrazení informací o Kontrole existujících dat při vytváření nebo opětovném povolení a Vynucení pro replikaci.

    Vynutit pro replikaci
    Určuje, jestli se má omezení vynutit, když agent replikace provede vložení, aktualizaci nebo odstranění v této tabulce.

    Vynutit Omezení Cizího Klíče
    Určete, zda jsou změny povoleny pro data sloupců v relaci, pokud by tyto změny zneplatněly integritu relace cizího klíče. Pokud nechcete takové změny povolit, zvolte Ano a pokud je chcete povolit, zvolte Ne.

    Kategorie specifikace ÚPRAVA a PŘIDÁNÍ
    Rozbalením zobrazíte informace pro pravidlo Odstranit a pravidlo Aktualizovat pro relaci.

    odstranit pravidlo
    Určete, co se stane, když se uživatel pokusí odstranit řádek s daty, která jsou součástí relace cizího klíče:

    • žádná akce chybová zpráva uživateli oznámí, že odstranění není povolené a funkce DELETE se vrátí zpět.

    • Kaskádová Odstraní všechny řádky obsahující data zahrnutá v relaci cizího klíče. Nezadávejte CASCADE, pokud bude tabulka zahrnuta do slučovací publikace, která používá logické záznamy.

    • Nastavit hodnotu Null Nastaví hodnotu null, pokud všechny sloupce cizího klíče tabulky mohou přijímat hodnoty null.

    • Nastavit výchozí Nastaví hodnotu na výchozí hodnotu definovanou pro sloupec, pokud všechny sloupce cizího klíče v tabulce mají definované výchozí hodnoty.

    pravidlo aktualizace
    Určete, co se stane, když se uživatel pokusí aktualizovat řádek s daty, která jsou zapojená do relace cizího klíče.

    • žádná akce chybová zpráva uživateli oznámí, že aktualizace není povolená a aktualizace se vrátí zpět.

    • Kaskádová aktualizace aktualizuje všechny řádky, které obsahují data zapojená do relace cizího klíče. Nezadávejte CASCADE, pokud bude tabulka zahrnuta do slučovací publikace, která používá logické záznamy.

    • Nastavit hodnotu Null Nastaví hodnotu null, pokud všechny sloupce cizího klíče tabulky mohou přijímat hodnoty null.

    • Nastavit výchozí Nastaví hodnotu na výchozí hodnotu definovanou pro daný sloupec, pokud mají všechny sloupce cizího klíče pro tabulku definované výchozí hodnoty.

  4. V nabídce Soubor klikněte na Uložitnázev tabulky.

Použití Transact-SQL

Upravit cizí klíč

Chcete-li upravit omezení CIZÍ KLÍČ pomocí jazyka Transact-SQL, musíte nejprve odstranit existující omezení CIZÍ KLÍČ a pak ho znovu vytvořit s novou definicí. Další informace naleznete v tématu Odstranění relací cizích klíčů a Vytvoření relací cizích klíčů.