2013-01-22 161 views
1

我創建了我的系統的ERD,現在我想創建一個SQL代碼。創建實體關係圖

That's one of the table from my ERD

所以應該在SQL代碼這個樣子?:

CREATE TABLE Student 
(
    StudentID INT NOT NULL IDENTITY PRIMARY KEY, 
    FirstName VARCHAR(255), 
    LastName  VARCHAR(255), 
    ADDRESS  VARCHAR(255), 
    PhoneNumber VARCHAR(255), 
    Email  VARCHAR(255), 
    GroupID  INT NOT NULL FOREIGN KEY 
); 
+0

你的問題是什麼? –

+0

這是錯誤信息: 'Msg 102,Level 15,State 1,Line 10 ''''附近的語法錯誤'' – knowbody

+0

我不知道SQL中的代碼 – knowbody

回答

3

你的問題是與您的查詢的FOREIGN KEY一部分,你是不是有定義外鍵。如果你現在刪除,查詢將工作,但沒有定義FK:

CREATE TABLE Student 
(
    StudentID INT NOT NULL IDENTITY PRIMARY KEY, 
    FirstName VARCHAR(255), 
    LastName  VARCHAR(255), 
    ADDRESS  VARCHAR(255), 
    PhoneNumber VARCHAR(255), 
    Email  VARCHAR(255), 
    GroupID  INT NOT NULL 
); 

如果你要創建的外鍵,你需要做這樣的事情(用正確的表和列):

CREATE TABLE Student 
(
    StudentID INT NOT NULL IDENTITY PRIMARY KEY, 
    FirstName VARCHAR(255), 
    LastName  VARCHAR(255), 
    ADDRESS  VARCHAR(255), 
    PhoneNumber VARCHAR(255), 
    Email  VARCHAR(255), 
    GroupID  INT NOT NULL REFERENCES Group(Group_ID) 
); 
+0

我應該如何定義'FOREIGN KEY'? – knowbody

+0

@Mateusz用我的答案第二個查詢做一個鏡頭,使用實際的表和列 – Lamak

+0

好吧我現在明白了 – knowbody

2

您的「FOREIGN KEY」聲明不完整 - 您需要說明外鍵引用哪個表/列。

如果你只是想獲得建表,

CREATE TABLE Student 
(
    StudentID INT NOT NULL IDENTITY PRIMARY KEY, 
    FirstName VARCHAR(255), 
    LastName  VARCHAR(255), 
    ADDRESS  VARCHAR(255), 
    PhoneNumber VARCHAR(255), 
    Email  VARCHAR(255), 
    GroupID  INT NOT NULL); 

應該工作。

+0

我知道'FOREIGN KEY'約束在DBMS中幾乎完全相同,但是你的鏈接指向MySQL文檔和問題用SQL-Server標記(並且在語法上可能存在實際差異,可能很重要。) –

+0

D'oh - 你是對的。急忙回答 - 已刪除鏈接! –