添加可以为空的外键.

Yat*_*rix 9 sql foreign-keys sql-server-2008

我有两个像这样构建的表(这只是一个简化的非专有示例):

Person Table
-----------
p_Id, f_name, l_name

Job Table
----------
job_Id, job_desc
Run Code Online (Sandbox Code Playgroud)

我想添加一个可以为空的引用Job.job_Id(PK)的外键列Persons.job_Id.原因是,该作业可能事先不知道,所以它可能为null.拥有"其他"不是一种选择.

到目前为止,我有这个,但我得到"无法创建约束".

ALTER TABLE dbo.Person  
ADD job_Id INT FOREIGN KEY (job_Id) REFERENCES dbo.Job(job_Id)
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Mit*_*dir 16

分两步尝试:

ALTER TABLE dbo.Person ADD job_Id INT NULL;
ALTER TABLE dbo.Person ADD CONSTRAINT FL_JOB 
FOREIGN KEY (job_Id) REFERENCES dbo.Job(job_Id);
Run Code Online (Sandbox Code Playgroud)

  • `ALTER TABLE dbo.Person ADD job_Id INT NULL,CONSTRAINT FL_JOB FOREIGN KEY(job_Id)REFERENCES dbo.Job(job_Id);`在一个语句中也可以这样做. (6认同)

dan*_*ode 11

尝试这样,没有检查:

ALTER TABLE dbo.Person ADD job_Id INT NULL;
ALTER TABLE dbo.Person WITH NOCHECK ADD CONSTRAINT FL_JOB 
FOREIGN KEY (job_Id) REFERENCES dbo.Job(job_Id);
Run Code Online (Sandbox Code Playgroud)