外键定义出错

时间:2012-03-12 17:11:13

标签: sql-server database foreign-keys

当我在SQL Server 2005中运行此代码时,出现此错误:

  

Ms 1769,Level 16,State 1,Line 1
  外键'FK_Ezn_Qaid_البيان'在引用表'Ezn_Qaid'中引用无效列'اسم_البيان'。
  Msg 1750,Level 16,State 0,Line 1
  无法创建约束。查看以前的错误。

表Ezn_Qaid:

create table Ezn_Qaid
(
Qaid_no int NOT NULL ,
Qaid_date nvarchar(10) NOT NULL ,
Maden int NOT NULL ,
Dayn int NOT NULL ,
Qaid_Type nvarchar(15)NOT NULL ,
CONSTRAINT FK_Ezn_Qaid_البيان FOREIGN KEY (اسم_البيان)
REFERENCES البيان(اسم_البيان)  
)

和表البيان:

create table البيان
(
رقم_البيان int  NOT NULL identity,
اسم_البيان nvarchar(100) NOT NULL
)

1 个答案:

答案 0 :(得分:1)

需要首先创建表البيان,其标识列必须是主键:

create table البيان(رقم_البيان int  NOT NULL identity PRIMARY KEY 
, اسم_البيان nvarchar(100) NOT NULL); 
GO 

create table Ezn_Qaid ( Qaid_no int NOT NULL , Qaid_date nvarchar(10) NOT NULL 
, Maden int NOT NULL 
, Dayn int NOT NULL
, Qaid_Type nvarchar(15)NOT NULL
, [FK_Ezn_Qaid] int FOREIGN KEY ([FK_Ezn_Qaid]) REFERENCES البيان (رقم_البيان)
)
go