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

时间:2016-09-15 15:40:08

标签: sql sql-server

我一直在尝试同时执行这两个查询:

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);

但是我收到了这个错误:

  

男装。 8111,Nivel 16,Estado 1,Línea3
  无法在表中的可空列上定义PRIMARY KEY约束   'owned_properties_rpt_table'。

     

男装。 1750年,Nivel 16,Estado 0,Línea3
  无法创建约束。查看以前的错误。

似乎不知何故,第二行在第一行完成之前执行。

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

SQL脚本需要在客户端的服务器上执行(我无法干预),因此不能替代代码。

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

试试这个

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);