![](/img/trans.png)
[英]Updating A Column From Another Table And Concatenating Two Columns In Single Query
[英]two columns referencing a single column in another table
這里提出了一個類似的問題, 多個外鍵引用了其他表中的單列,但語法未在答案中顯示。 我想知道如何在SQL Server中實現這一點。 以下語法給出錯誤
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemIssue_Person
FOREIGN KEY (PersonID, AdvisorID) REFERENCES Person (PersonID)
;
錯誤:外鍵中的引用列數與引用列數(表'ItemIssue')不同。
-- Create Tables
CREATE TABLE ItemIssue (
ItemIssueID int identity(1,1) NOT NULL,
PersonID int,
AdvisorID int,
)
;
CREATE TABLE Person (
PersonID int NOT NULL,
Name nvarchar(500),
)
;
您需要定義兩個外鍵,每列一個:
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemIssue_Person
FOREIGN KEY (PersonID) REFERENCES Person (PersonID)
;
ALTER TABLE ItemIssue ADD CONSTRAINT FK_ItemAdvisor_Person
FOREIGN KEY (AdvisorID) REFERENCES Person (PersonID)
;
為引用一列的兩列創建一個外鍵是不可能的。 分開創建它們:
ALTER TABLE ItemIssue
ADD CONSTRAINT FK_ItemIssue_Person_Person FOREIGN KEY (PersonID) REFERENCES Person (PersonID),
ADD CONSTRAINT FK_ItemIssue_Advisor_Person FOREIGN KEY (AdvisorID) REFERENCES Person (PersonID);
要定義兩個外鍵,每列一個 -
表
合同 - HospidPharmacyId專欄
Hospice-HospiceID PK Pharmacy PharmacyId Pk
更改表合同添加約束fk_pharmacyID外鍵([HospIDPharmID])引用葯房([PharmacyID])
Alter TAble合同添加約束Fk_hospId外鍵([HospIDPharmID])引用臨終關懷(HospiceID)
表。 那些存在於臨終關懷而不是葯房的人,那么我們就無法插入這個價值
合同表,反之亦然。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.