2013-04-24 30 views
0

我試圖創建一個表像,如何創建五個外鍵和其中一個作爲主鍵(這也是一個VARCHAR)的表

USE [labblyDabbly3455] 
    GO 

    CREATE TABLE [dbo].[daTableBang] 
    (
    TableAID varchar FOREIGN KEY REFERENCES TableA(ID) 
    TableATitle VarChar FOREIGN KEY REFERENCES TableA(title) 
    TableAName varchar FOREIGN KEY REFERENCES TableA(Name) 
    TableASurName varchar FOREIGN KEY REFERENCES TableA(surname) 
    TableBID int FOREIGN KEY REFERENCES TableB(ID) 
    ) 

,但得到的錯誤,

不正確的語法

我需要聲明TableAID作爲主鍵也有人可以幫助我的語法PLZ

之後我嘗試VOO回答我得到這個錯誤,

有被引用表 「表B」匹配外鍵 「FK__0A537D18」的引用列的列表中沒有主或候選鍵。

+0

你在哪裏提到的主鍵? – 2013-04-24 14:23:06

+0

你錯過了逗號。並聲明4列每個只能包含沒有或1個字符。所有的列都是可空的。那真的是你想要的嗎? (可爲Nullable的列不能是主鍵的一部分) – 2013-04-24 14:23:12

+0

@Borsel我不知道如何聲明主鍵 – Mathematics 2013-04-24 14:26:32

回答

2

在您創建查詢添加逗號每列

CREATE TABLE [dbo].[daTableBang] 
(
TableAID int FOREIGN KEY REFERENCES TableA(ID), 
TableATitle VarChar FOREIGN KEY REFERENCES TableA(title), 
TableAName varchar FOREIGN KEY REFERENCES TableA(Name), 
TableASurName varchar FOREIGN KEY REFERENCES TableA(surname), 
TableBID int FOREIGN KEY REFERENCES TableB(ID) 
) 

此外,我建議你以TableAID和TableBID作爲主鍵來改變stucture後,和TableAID作爲外鍵表A,和TableBID作爲表B的外鍵。並且刪除TableAitle,TableAnn,TableAcultName的caurse。結果查詢:

CREATE TABLE [dbo].[daTableBang] 
(
TableAID int not null FOREIGN KEY REFERENCES TableA(ID),  
TableBID int not null FOREIGN KEY REFERENCES TableB(ID), 
PRIMARY KEY (TableAID,TableBID) 
) 
+1

他也可能在使用四個獨立的TableA外鍵引用時遇到問題。我懷疑名字,姓氏和標題都是唯一的密鑰。 – Aushin 2013-04-24 14:24:08

+0

@voo我怎麼才能讓TableAID和TableBID主鍵在上面查詢,謝謝 – Mathematics 2013-04-24 14:33:04

+0

我更新了答案 – Alex 2013-04-24 14:34:13

相關問題