2016-06-09 76 views
3

我在兩個系統中有兩個表都具有相同的結構。我想在一個表中的數據更新到其他將數據從一個表更新到另一個失敗

update Table1 
set VIEW_CD = cmn.VIEW_CD, 
    VIEW_DETAIL = cmn.VIEW_DETAIL 
FROM dbo.Table1 tbl 
INNER JOIN dbo.Table2 cmn ON tbl.id = cmn.id 

無論是在這兩個表中列是空列,但我有例外結束了

無法插入NULL值插入列列呢不允許有空值。 INSERT失敗。

回答

0

試試這個:

update Table1 
    set  VIEW_CD = cmn.VIEW_CD, 
    VIEW_DETAIL = cmn.VIEW_DETAIL 
    FROM dbo.Table1 tbl 
    INNER JOIN dbo.Table2 cmn ON tbl.id = cmn.id 
where VIEW_CD IS NOT NULL AND VIEW_DETAIL IS NOT NULL 

以上將與所有從表2,其中記錄不包含任何NULL值的記錄更新表1。

1

我認爲,問題是,你有Table1NOT NULL約束,你應該放棄它:

ALTER TABLE dbo.Table1 ALTER COLUMN VIEW_CD <columnType> NULL 

或者這樣:

ALTER TABLE dbo.Table1 ALTER VIEW_CD DROP NOT NULL 

然後再次運行查詢。

+0

我嘗試了上面的alter語句,但仍然失敗。 「無法將NULL值插入列列的原因不允許空值,INSERT失敗。」在我的情況下,錯誤是由於觸發器在執行更新語句之前被觸發的。 – user3595236

+0

@ user3595236也在第二列「VIEW_DETIAL」上執行。 – sagi

相關問題