多表同步更新触发器
CREATE TRIGGER [dbo].[PURTG2] ON [dbo].[PURTG]
FOR INSERT
AS
DECLARE @TG001 CHAR(4),@TG002 CHAR(11),@TG004 CHAR(11),@TG042 CHAR(11),@TH003 CHAR(4),@TH004 CHAR(20),@TH005 CHAR(60),@TH006 CHAR(60),@TH007 CHAR(10),@TH008 NUMERIC(16,6),@TH009 CHAR(4),@TH010 NUMERIC(16,6),@TH012 NUMERIC(17,8),@TH013 NUMERIC(16,2),@TH018 VARCHAR(255),@TG1 Bigint,@TG2 Bigint /*单别,单别,客户编号,单剧日期,序号,品号,品名,规格,仓库,数量,单位,单价,金额,备注*/
SET @TG001='3300'
SET @TG004='LCGX01'
SET @TG1=(SELECT MAX(TG002) FROM COPTG)
SET @TG2=@TG1+1
--SELECT @TG042=TG014 FROM INSERTED
SELECT @TH003=PURTH.TH003,@TH004=PURTH.TH004,@TH005=PURTH.TH005,@TH006=PURTH.TH006,@TH007=PURTH.TH009, @TH008=PURTH.TH007,@TH009=PURTH.TH008,@TH012=PURTH.TH018,@TH013=PURTH.TH019,@TH018=PURTH.TH033,@TG042=TG014 FROM INSERTED,PURTH WHERE TG001=PURTH.TH001 AND TG002=PURTH.TH002
BEGIN
SET NOCOUNT ON
BEGIN
INSERT INTO COPTG (TG001,TG002,TG004,TG010,TG011,TG016,TG017,TG023,TG036,TG037,TG042)
VALUES (@TG001,@TG2,@TG004,'801','RMB','C','3','N','N','N',@TG042)
INSERT INTO COPTH (TH001,TH002,TH003,TH004,TH005,TH006,TH007,TH008,TH009,TH012,TH013,TH018,TH020)
VALUES (@TG001,@TG2,@TH003,@TH004,@TH005,@TH006,@TH007,@TH008,@TH009,@TH012,@TH013,@TH018,'N')
END
SET NOCOUNT OFF
END
提示“不能将值NULL插入列'TH003',表COPTH;列不允许有空值。INSERT失败”。
请问这是那段数据有问题???
COPTH.TH003是不允许为空值
但INSERTED表内的TH003字段是有值的(INSERTED表内的TH003也不允许有空值)
且已将INSERTED表内的TH003值赋给@TH003
怎么会存在INSERT为空值了??
请问这是那段语句有问题???