Potrafię utworzyć złożony klucz podstawowy w studiu zarządzania serwerami sql 2012, wybierając dwie kolumny (OrderId, CompanyId) i kliknij prawym przyciskiem myszy i ustaw jako klucz podstawowy. Ale nie wiem, jak utworzyć klucz obcy w dwóch kolumnach (OrderId, CompanyId) w innej tabeli przy użyciu serwera zarządzania serwerem sql 2012.Jak utworzyć złożony klucz obcy w studiu zarządzania serwerem sql 2012
Odpowiedz
W Object Explorer, przejdź do tabeli i wybierz Keys > New Foreign Key
z menu kontekstowego:
W oknie dialogowym, które się pojawi, kliknij na Dodaj przycisk, aby utworzyć nowy klucz obcy :
Nadaj mu nazwę, a następnie kliknij na ... przycisk, aby otworzyć okno dialogowe Tables and Columns specification
:
Wypełnij niezbędne kolumn dla rodzica i tabel podrzędnych, kliknij OKi skończysz!
Lub o wiele łatwiej i wydajniej - użyj skryptu T-SQL!
ALTER TABLE dbo.OtherTable
ADD CONSTRAINT FK_OtherTable_ParentTable
FOREIGN KEY(OrderId, CompanyId) REFERENCES dbo.ParentTable(OrderId, CompanyId)
Jeśli otworzysz podmenu dla tabeli na liście tabeli w Management Studio, jest pozycja Keys
. Jeśli klikniesz prawym przyciskiem myszy, otrzymasz New Foreign Key
jako opcję. Jeśli to wybierzesz, otworzy się okno dialogowe Relacje z kluczem obcym. W sekcji (Ogólne) znajdziesz Tables And Columns Specifications
. Jeśli to otworzę, mogę wybrać wiele kolumn.
Dodaj dwa oddzielne klucze obce dla każdej kolumny.
Jeśli istnieje tylko złożony klucz podstawowy w przywoływanej tabeli i żaden inny zadeklarowany klucz, nie można utworzyć klucza obcego, który odwołuje się tylko do jednej z kolumn. –
jest to możliwe? Nie sądzę! –
Znam powyższe zapytanie, ale problem polega na tym, że chcę to zrobić wizualnie. Wspomniałeś o kluczu obcym na zrzucie ekranu. jego dobrze, ale w przypadku złożonej relacji klucza podstawowego obcego, nie wspomniano na zrzutach ekranu ...... – user3004110
@ user3004110: jeśli chcesz odwołać się do złożonego klucza podstawowego, wystarczy wybrać więcej niż jedną kolumnę w oknie dialogowym, aby Zdefiniuj klucz obcy! –
Sposób GUI nie działał, skrypt T-SQL działał od razu –