sql - SQL Server:检测列更改
问题描述
我正在尝试检测列中的任何更改。让我准确描述我的问题。
假设我有 400 个存储过程,其中 20 个更改了 table 中命名ModDate
的列Users
。但是ModDate
专栏不足以让我实现我的目标。我需要一个脏位列让我们说IsChanged
。
我的解决方案是查找并检查更新的程序,Users.ModDate
并将这些程序也更改为更新IsChanged
。但这在时间上效率不高。另外,我可能会错过一些程序,这会导致问题。
所以,我的问题;是否可以更改表/列以创建“更改时”触发器?当任何过程更改 的值时Users.ModDate
,SQL Server 会IsChanged
自动将该列更新为 1。
感谢您的回答。
解决方案
您可以在列上为不同的 crud 事件创建触发器。
见https://www.sqlservertutorial.net/sql-server-triggers/sql-server-create-trigger/
`CREATE TRIGGER [schema_name.]trigger_name ON table_name AFTER {[INSERT],[UPDATE],[DELETE]} [NOT FOR REPLICATION] AS {sql_statements`}
推荐阅读
- ios - 所有本地包中相同版本的 swift 包
- asp.net-core - Swagger Swashbuckle Asp.NET Core:显示使用的每个枚举的详细信息
- office-js - 如何在 office-js 对话框中进行 gapi 身份验证 - 错误 - 不是客户端的有效来源
- discord.py - discord.py 如何为成员添加角色
- android - 更新所有活动的片段
- amazon-web-services - Profiler 不向 CloudGuru 发送指标
- javascript - 如何使用 Intl.DateTimeFormat 表示 MM/dd/yyyy, hh:mm tt
- java - 在java中查看数字的数字
- google-data-studio - 多个图表缓存
- javascript - Javascript:解析字符串中的 json 对象数组