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没有初始化的,是不是赋值错了,不应该是这个变化了. 是赋其他值的

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏