2014-04-01 47 views
-1

這是我創建的兩個表格。如何使用外鍵引用創建表?

CREATE TABLE Employee 
(
    EmpID int IDENTITY(1,1) PRIMARY KEY, 
    LastName VARCHAR(50) NOT NULL, 
    FirstName VARCHAR(50) NOT NULL, 
    StreetAddress VARCHAR(75), 
    City VARCHAR(255), 
    State VARCHAR(25), 
    ZipCode VARCHAR(5), 
    EmployeeType VARCHAR (20), 
    HourlyWage DECIMAL(18,2) 
) 

CREATE TABLE WagesPayable 
(
    FOREIGN KEY (EmpID) REFERENCES Employee (EmpID), 
    WorkedHours DECIMAL(18,2), 
    PayRate DECIMAL(18,2), 
    TotalPayable AS (WorkedHours * PayRate), 
    DateLastPaid DATETIME 
) 

每當我試圖創建WagesPayable表我得到以下錯誤:

Msg 1769, Level 16, State 1, Line 26
Foreign key 'EmpID' references invalid column 'EmpID' in referencing table 'WagesPayable'.

缺少什麼我在這裏?非常感謝您的幫助。

+0

EmpId int外鍵引用員工(EmpId) – user3217843

+1

看看它:http://www.w3schools.com/sql/sql_foreignkey.asp請在提問之前對您的部分進行一些調查。 –

回答

2

您需要參考以前申報列。您可以一步完成此操作:

CREATE TABLE WagesPayable 
(
EmpID int REFERENCES Employee (EmpID), 
WorkedHours DECIMAL(18,2), 
PayRate DECIMAL(18,2), 
TotalPayable AS (WorkedHours * PayRate), 
DateLastPaid DATETIME 
) 

SQL小提琴是here

1

您並未爲表WagesPayable創建列EmpID。

所以,首先你需要創建列,然後引用它作爲這樣一個外鍵:

CREATE TABLE WagesPayable 
(
EmpID int, 
WorkedHours DECIMAL(18,2), 
PayRate DECIMAL(18,2), 
TotalPayable AS (WorkedHours * PayRate), 
DateLastPaid DATETIME, 
FOREIGN KEY (EmpID) REFERENCES Employee (EmpID) 
)