declare @newid as uniqueidentifier
declare @fitemid as int
set @newid=NEWID()
exec sp_executesql N'INSERT INTO t_Item (FItemClassID,FParentID,FLevel,FName,FNumber,FShortNumber,FFullNumber,FDetail,UUID,FDeleted) VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10)',N'@P1 int,@P2 int,@P3 smallint,@P4 varchar(255),@P5 varchar(80),@P6 varchar(80),@P7 varchar(80),@P8 bit,@P9 varchar(38),@P10 smallint',3005,0,1,@ftext13name,@ftext12number,@ftext12number,@ftext12number,1,@newid,0 ----插入一条数据
exec sp_executesql N'SELECT @P3=FItemID output FROM t_Item WHERE FItemClassID=@P1 AND FNumber=@P2',N'@P1 int,@P2 varchar(80),@P3 INT OUTPUT',3005,@ftext12number,@P3=@fitemid OUTPUT
--获得 fitemid自增长码
exec sp_executesql N'INSERT INTO t_Item_3005 (F_103,F_104,F_105,F_106,F_109,F_110,F_111,F_112,F_115,F_116,F_117,F_118,F_119,FNumber,FName,FItemID) VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8,@P9,@P10,@P11,@P12,@P13,@P14,@P15,@P16)',N'@P1 varchar(255),@P2 varchar(255),@P3 varchar(255),@P4 varchar(255),@P5 varchar(255),@P6 varchar(255),@P7 varchar(255),@P8 varchar(255),@P9 int,@P10 int,@P11 int,@P12 int,@P13 int,@P14 varchar(80),@P15 varchar(255),@P16 int',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,@ftext12number,@ftext13name,@fitemid----插入另外一个表
这段代码的是从insert触发器截出来的,实现功能是:先往表t__item插入一条数据,获得这条数据的fitemid自增长代码,之后插入另外一张表t_Item_3005
触发器插入t_Item_3005时,sql提示我@fitemid不能为null,是我中间获得fitemid的语句语法有问题吗