Udostępnij za pośrednictwem


Modyfikacja relacji klucza obcego

Dotyczy: SQL Server 2016 (13.x) i późniejsze wersje Azure SQL DatabaseAzure SQL Managed InstanceSQL Database w usłudze Microsoft Fabric

Możesz zmodyfikować stronę klucza obcego relacji w programie SQL Server przy użyciu programu SQL Server Management Studio lub za pomocą Transact-SQL. Modyfikowanie klucza obcego tabeli zmienia kolumny powiązane z kolumnami w tabeli kluczy podstawowych.

w tym temacie

Przed rozpoczęciem

Ograniczenia i ograniczenia

Nowa kolumna klucza obcego musi być zgodna z typem danych i rozmiarem kolumny klucza podstawowego, do której się odnosi, z następującymi wyjątkami:

  • Kolumna char lub nazwa_systemu może odnosić się do kolumny varchar.

  • Kolumna binarna może odnosić się do kolumny varbinary .

  • Typ danych aliasu może odnosić się do jego typu podstawowego.

Bezpieczeństwo

Uprawnienia

Wymaga uprawnienia ALTER w tabeli.

Korzystanie z programu SQL Server Management Studio

Aby zmodyfikować klucz obcy

  1. W Eksploratorze obiektów rozwiń tabelę zawierającą klucz obcy, a następnie rozwiń sekcję Klucze.

  2. Kliknij prawym przyciskiem myszy klucz obcy, który ma zostać zmodyfikowany, a następnie wybierz pozycję Modyfikuj.

  3. W oknie dialogowym Relacjach klucza obcego można wprowadzić następujące modyfikacje.

    wybrana relacja
    Wyświetla listę istniejących relacji. Wybierz relację, aby wyświetlić jej właściwości w siatce po prawej stronie. Jeśli lista jest pusta, nie zdefiniowano relacji dla tabeli.

    Dodaj
    Utwórz nową relację. Tabele i specyfikacje kolumn należy ustawić, zanim relacja będzie prawidłowa.

    Usuń
    Usuń relację wybraną na liście Wybrane relacje. Aby anulować dodawanie relacji, użyj tego przycisku, aby usunąć relację.

    Kategoria Ogólna
    Rozwiń, aby wyświetlić Sprawdź istniejące dane dotyczące tworzenia lub ponownego aktywowania i specyfikacje tabel i kolumn .

    sprawdź istniejące dane podczas tworzenia lub ponownego włączania
    Zweryfikuj wszystkie istniejące dane w tabeli względem ograniczenia, sprawdzając je przed utworzeniem lub ponownym włączeniem ograniczenia.

    Specyfikacje Tabel i Kolumn Kategoria
    Rozwiń, aby pokazać, które kolumny z których tabel pełnią rolę klucza obcego i klucza podstawowego (lub unikatowego) w relacji. Aby edytować lub zdefiniować te wartości, kliknij przycisk wielokropka (...) po prawej stronie pola właściwości.

    Tabela bazowa klucza obcego
    Pokazuje, która tabela zawiera kolumnę działającą jako klucz obcy w wybranej relacji.

    kolumny klucza obcego
    Pokazuje, która kolumna działa jako klucz obcy w wybranej relacji.

    Tabela podstawowa/unikatowa klucza głównego
    Pokazuje, która tabela zawiera kolumnę działającą jako klucz podstawowy (lub unikatowy) w wybranej relacji.

    kolumny klucza podstawowego/unikatowego
    Pokazuje, która kolumna działa jako klucz podstawowy (lub unikatowy) w wybranej relacji.

    kategorii tożsamości
    Rozwiń, aby wyświetlić pola właściwości Nazwa i Opis.

    nazwa
    Wyświetla nazwę relacji. Po utworzeniu nowej relacji zostanie nadana domyślna nazwa na podstawie tabeli w aktywnym oknie w programie Table Designer. Nazwę można zmienić w dowolnym momencie.

    Opis
    Opisz relację. Aby napisać bardziej szczegółowy opis, kliknij Opis, a następnie kliknij wielokropek (...), który pojawia się po prawej stronie pola właściwości. Zapewnia to większy obszar, w którym ma być zapisywany tekst.

    kategorii projektanta tabel
    Rozwiń, aby wyświetlić informacje dotyczące Sprawdzania istniejących danych podczas tworzenia lub ponownego włączania oraz Wymuszania replikacji.

    Wymuszanie replikacji
    Wskazuje, czy wymusić ograniczenie, gdy agent replikacji wykonuje operację wstawiania, aktualizowania lub usuwania w tej tabeli.

    wymuszanie ograniczenia klucza obcego
    Określ, czy zmiany mogą być dozwolone dla danych kolumn w relacji, jeśli te zmiany naruszałyby integralność relacji klucza obcego. Wybierz pozycję Tak, jeśli nie chcesz zezwalać na takie zmiany, a następnie wybierz pozycję Nie, jeśli chcesz zezwolić na nie.

    Specyfikacja dla INSERT i UPDATE kategorii
    Rozwiń, aby wyświetlić informacje dotyczące reguły usuwania oraz reguły aktualizacji dla relacji.

    usuń regułę
    Określ, co się stanie, jeśli użytkownik spróbuje usunąć wiersz z danymi, które są zaangażowane w relację klucza obcego:

    • Brak akcji Komunikat o błędzie informuje użytkownika, że usunięcie jest niedozwolone i usunięcie zostanie wycofane.

    • Cascade Usuwa wszystkie wiersze zawierające wszystkie dane związane z relacją klucza obcego. Nie używaj CASCADE, jeśli tabela ma być uwzględniona w publikacji scalanej korzystającej z rekordów logicznych.

    • Ustaw wartość null Ustawia wartość null, jeśli wszystkie kolumny klucza obcego dla tabeli mogą akceptować wartości null.

    • Ustaw domyślną wartość Ustawia wartość na wartość domyślną zdefiniowaną dla kolumny, jeśli wszystkie kolumny klucza obcego w tabeli mają zdefiniowane wartości domyślne.

    Aktualizacja reguły
    Określ, co się stanie, jeśli użytkownik spróbuje zaktualizować wiersz przy użyciu danych zaangażowanych w relację klucza obcego:

    • brak akcji Komunikat o błędzie informuje użytkownika, że aktualizacja jest niedozwolona i aktualizacja zostanie wycofana.

    • Cascade Aktualizuje wszystkie wiersze zawierające dane związane z relacją klucza obcego. Nie należy określać CASCADE, jeśli tabela zostanie uwzględniona w publikacji scalanej korzystającej z rekordów logicznych.

    • Ustaw wartość null Ustawia wartość null, jeśli wszystkie kolumny klucza obcego dla tabeli mogą akceptować wartości null.

    • Ustaw domyślną Ustawia wartość na domyślną zdefiniowaną dla kolumny, jeśli wszystkie kolumny kluczy obcych w tabeli mają zdefiniowane domyślne wartości.

  4. W menu plik kliknij pozycję Zapisz nazwę tabeli.

Korzystanie z Transact-SQL

Aby zmodyfikować klucz obcy

Aby zmodyfikować ograniczenie KLUCZA OBCEgo przy użyciu języka Transact-SQL, należy najpierw usunąć istniejące ograniczenie KLUCZA OBCEgo, a następnie ponownie utworzyć go przy użyciu nowej definicji. Aby uzyskać więcej informacji, zobacz Usuwanie relacji kluczy obcych i Tworzenie relacji kluczy obcych.