weixin_44382072 2019-06-14 15:46 采纳率: 0%
浏览 181

关于SQL触发器无法传值问题。

创建了一个触发器实现对表进行增加删除修改的记录。
代码如下:
USE [Huahai1966]
GO
/****** Object: Trigger [dbo].[tr_receipt] Script Date: 2019/6/14 15:37:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[tr_receipt]
on [dbo].[T_In_Receipt] after insert
as
begin

DECLARE
@op nvarchar(10),
@operator VARCHAR(255),
@optime VARCHAR(255),
@info NVARCHAR(255),
@in_code NVARCHAR(50)

SET @op='插入'

SELECT @operator= inserted.C_CreateBy,
@optime= inserted.C_CreateTime,
@in_code = inserted.C_Code,
@operator= inserted.C_CreateBy FROM inserted
SET @info = N'入库单于' + @optime + '执行了' + @op + '操作, '+ '编号:'+ @in_code +', 操作人:'+ @operator

INSERT INTO dbo.Log_In
(
operation,
operator,
op_time,
info
)
VALUES
( @op, -- operation - nvarchar(50)
@operator, -- operator - nvarchar(50)
@optime, -- op_time - datetime
@info -- info - nvarchar(50)
)

end

但是在operator op-time info 等字段一直无法传值过去 总是空 哪位大神能帮个忙?

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 06:33
    关注

    根据你提供的代码,我发现你有两个地方出现了重复赋值的错误:

    1. 在SELECT语句中,你将@operator赋值两次,应该删除一次。

    2. 在INSERT INTO语句中,你的info字段定义长度为nvarchar(50),但实际长度超过了50,应该将长度修改为nvarchar(255)。

    另外,请确认你的触发器是否已经启用,以及你在表中插入数据时是否有填写以上字段的值。如果以上提醒都没有解决问题,请提供更多信息,例如表的结构和触发器启用方式等。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器