2016-09-15 59 views
0

我一直在嘗試這兩個查詢執行起來: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

回答

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

上面的代碼經過測試?需要'bl_id'的默認值! – Hiten004

+0

沒有必要添加一個默認值(表中所有值爲bl_id,其中不爲空)。在查詢之間使用它完全可行,謝謝! – fernius

相關問題