sql-server - SQL Server 触发器插入(更新插入的行)
问题描述
U_DIGIT
在 SQL Server 中插入新记录(在此新记录中更新)后,我需要更新一列。我认为最好的方法是在插入的记录中使用触发器来执行此操作,但它应该只在ORIGIN
列中具有“OL”的新记录中完成。
我试过这段代码,但它不起作用。需要一些帮助,请。谢谢。
CREATE TRIGGER tr_ol_ins_digit
ON ol
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE ol
SET u_digit = 'path\' + cast(OL.OLID as varchar(8)) + '.PDF'
WHERE olstamp IN (SELECT olstamp
FROM inserted
WHERE origin = 'OL')
END
GO
解决方案
我认为反斜杠是这里的问题。你需要逃避它。
尝试这个:
CREATE TRIGGER tr_ol_ins_digit
ON ol
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
update ol
set u_digit = 'path\\' + cast(OL.OLID as varchar(8)) + '.PDF'
where olstamp in (select olstamp from inserted where origin = 'OL')
END
GO
推荐阅读
- node.js - 在所有 CPU 内核上运行 NodeJS 以实现最大的硬件潜力
- c++ - ImGui 读取然后返回 const char
- r - 循环和 If 语句以填充 R 中的主位置
- ruby-on-rails - 为什么我在设计上没有看到闪光警报消息
- karate - 使用 karateui 在 iframe 中上传文件
- typescript - 如何键入具有不同参数组合的函数?类似于方法重载
- dataframe - 在 Julia 数据框中查找未找到子字符串的行
- c++ - 如何将随机生成的数组复制到另一个数组中?
- javascript - 为什么单击汉堡并展开窗口后导航栏没有重置?
- amazon-web-services - 如何在将 Troposhpere 框架用于 AWS 经典负载均衡器 443 侦听器时更新 SSL 协商策略