SQL Server 2012中 - 查询工作执行一对一,但不在一个组中

问题描述:

我一直在尝试这两个查询执行起来:SQL Server 2012中 - 查询工作执行一对一,但不在一个组中

ALTER TABLE afm.owned_properties_rpt_table 
ALTER COLUMN bl_id CHAR(8) NOT NULL; 

ALTER TABLE afm.owned_properties_rpt_table 
ADD CONSTRAINT owned_properties_rpt_table_PK PRIMARY KEY (bl_id); 

但我发现了这个错误:

Mens. 8111, Nivel 16, Estado 1, Línea 3
Cannot define PRIMARY KEY constraint on nullable column in table 'owned_properties_rpt_table'.

Mens. 1750, Nivel 16, Estado 0, Línea 3
Could not create constraint. See previous errors.

看来不知何故,第二行在第一行完成之前正在执行。

我尝试了通过去更改分号,使用开始事务/提交事务结构,并创建一个辅助列,我在bl_id中复制数据,然后删除旧列,所有这些都没有成功。

SQL脚本需要在客户端的服务器上执行(我无法介入),因此划分代码不是一种选择。

如果我缺少一些基本的东西,我很抱歉,我也在几个小时内搜索了同样的问题,但没有成功。

感谢您的帮助。

+0

PK不能为空,,添加默认的bl_id列。 'ALTER TABLE afm.owned_properties_rpt_table ALTER COLUMN bl_id CHAR(8)NOT NULL DEFAULT'ABC';' – Hiten004

试试这个

ALTER TABLE afm.owned_properties_rpt_table ALTER COLUMN bl_id CHAR(8) NOT NULL default 'sometest'; 
GO 
ALTER TABLE afm.owned_properties_rpt_table ADD CONSTRAINT owned_properties_rpt_table_PK PRIMARY KEY (bl_id); 
+0

上面的代码经过测试?需要'bl_id'的默认值! – Hiten004

+0

没有必要添加一个默认值(表中所有值为bl_id,其中不为空)。在查询之间使用它完全可行,谢谢! – fernius