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 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办