civvss 2018-07-24 07:34 采纳率: 60%
浏览 812
已结题

sql server触发器提示变量fitemid不能为空

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的语句语法有问题吗

  • 写回答

1条回答

  • ganqiangde 2018-07-24 08:02
    关注

    xec sp_executesql N'SELECT @P3=FItemID output FROM t_Item WHERE

    @P3=FItemID 这个FItemID没有初始化的,是不是赋值错了,不应该是这个变化了. 是赋其他值的

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料