sql-server - SQL 触发器插入新变量
问题描述
当使用触发器使用新行更新表时,我正在尝试根据特定条件填充列。
这是我写的。
create trigger [myschema].[charD]
on [myschema].[deposits]
after update
as
begin
set nocount on;
update myschema.deposits
set dayC = (convert(varchar, day, 23))
from myschema.deposits
where dayC is null
end
GO
添加新行时,这不会更新或填充列 dayC,我在这里缺少什么?
解决方案
set dayC = (convert(varchar, day, 23))
看起来您正在将 adate
或格式转换/格式化datetime
为字符串YYYY-MM-DD
您可以使用计算列,而不是使用触发器
ALTER TABLE [myschema].[deposits]
ADD [dayc] AS CONVERT(VARCHAR(10), [day], 23)
推荐阅读
- ios - 如何在 Ios swift 中向 BLE 设备写入多个命令
- javascript - GoogleIMA:1009 VAST 响应文档为空
- nlp - 仅从训练数据或整个数据中构建词汇表?
- javascript - 从 Ajax 调用结果中读取对象
- c++ - 具有字符数组元素的结构的 STL 容器
- java - java.sql.SQLException:ORA-01407:无法在 Java 中更新为 NULL
- azure-devops - 即使步骤失败(如测试),如何让 Azure DevOps 的管道缓存存储其结果?
- azure - IoT 中心服务 SDK 获取 Edge 运行时响应
- python - 获取窗口 url 但出现错误: LookupError: Find Control Timeout: {ControlType: EditControl}
- javascript - TypeError:无法读取未定义的属性“0”-量角器节点js