BEGIN TRAN
SELECT * FROM dbo.ttp_plan_d_9_18100474
DECLARE @emp VARCHAR(50) = '18100474';
DECLARE @id VARCHAR(10) = '8';
MERGE INTO HMFG.dbo.ttp_plan_d AS t
USING dbo.ttp_plan_d_9_18100474 AS s
ON t.plnd_id = s.plnd_id
WHEN MATCHED
THEN UPDATE SET
t.plnd_date_interval = s.plnd_date_interval,
t.plnd_date_unit = s.plnd_date_unit,
t.plnd_date_num = s.plnd_date_num,
t.plnd_beg_date = s.plnd_beg_date,
t.plnd_end_date = s.plnd_end_date,
t.plnd_time_interval = s.plnd_time_interval,
t.plnd_time_unit = s.plnd_time_unit,
t.plnd_time_num = s.plnd_time_num,
t.plnd_beg_time = s.plnd_beg_time,
t.plnd_end_time = s.plnd_end_time,
t.plnd_duration = s.plnd_duration,
t.plnd_leadtime = s.plnd_leadtime,
t.isenable = s.isenable,
t.modtime = GETDATE(),
t.moduser = @emp
WHEN NOT MATCHED BY TARGET
THEN INSERT
( plnd_plnm_id ,
plnd_date_interval ,
plnd_date_unit ,
plnd_date_num ,
plnd_beg_date ,
plnd_end_date ,
plnd_time_interval ,
plnd_time_unit ,
plnd_time_num ,
plnd_beg_time ,
plnd_end_time ,
plnd_duration ,
plnd_leadtime ,
isenable ,
addtime ,
adduser ,
modtime ,
moduser ,
acctid
)
VALUES ( @id , -- plnd_plnm_id - int
s.plnd_date_interval , -- plnd_date_interval - varchar(1)
s.plnd_date_unit , -- plnd_date_unit - varchar(10)
s.plnd_date_num , -- plnd_date_num - int
s.plnd_beg_date , -- plnd_beg_date - datetime
s.plnd_end_date , -- plnd_end_date - datetime
s.plnd_time_interval , -- plnd_time_interval - tinyint
s.plnd_time_unit , -- plnd_time_unit - varchar(10)
s.plnd_time_num , -- plnd_time_num - int
s.plnd_beg_time , -- plnd_beg_time - datetime
s.plnd_end_time , -- plnd_end_time - datetime
s.plnd_duration , -- plnd_duration - int
s.plnd_leadtime , -- plnd_leadtime - int
s.isenable , -- isenable - tinyint
GETDATE() , -- addtime - datetime
@emp , -- adduser - varchar(20)
GETDATE() , -- modtime - datetime
@emp , -- moduser - varchar(20)
1 -- acctid - int
);
DROP TABLE dbo.ttp_plan_d_9_18100474;
SELECT @id Code, 'OK' Msg;
ROLLBACK
使用merge語法時報錯。
嘗試將不可為 NULL 的列的值設定為 NULL。


但是原表資料里面只有這四個欄位為null,而且這四個欄位都是可以為NULL的

而且我們平時有欄位不能為NULL
應該是這樣提示吧【不能將值 NULL 插入列 '...',表 '...';列不允許有 Null 值】
但是現在怎么是這樣的提示【嘗試將不可為 NULL 的列的值設定為 NULL。】
uj5u.com熱心網友回復:
就沒有人遇到過這種情況嗎
uj5u.com熱心網友回復:
你弄反了, 應該是那些 not null 的欄位出了問題uj5u.com熱心網友回復:
我知道,但是source表就兩行資料
not null的欄位都不為null啊
uj5u.com熱心網友回復:
plnd_id和sid兩列是不是自增的?uj5u.com熱心網友回復:
你應該不會在一個表里弄兩個自增列,現在有兩個列沒有資料,目測是sid列出了問題uj5u.com熱心網友回復:
sid不是自增的,有默認值
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/90579.html
標籤:疑難問題
