gpt4 book ai didi

SQL 更新触发器列名

转载 作者:行者123 更新时间:2023-12-02 02:36:30 25 4
gpt4 key购买 nike

似乎无法在任何地方找到执行此操作的方法。我有一个在更新时触发的 SQL 触发器。触发器将有关更新的一些详细信息复制到其他人的程序使用的另一个表中。传递的详细信息包括更新列的名称。有很多很多潜在的列已经更新(尽管在任何时候只有一个),我可以使用类似的东西:

IF UPDATE(ThisColumn)
BEGIN
Do stuff with ThisColumn
END
IF UPDATE(ThatColumn)
BEGIN
Do same stuff with ThatColumn
END

但正如我所说,此表中有许多列,我确信必须有一种优雅的方法来获取已更新的列的名称,而无需我键入本质上相同的 IF 语句的页面。

提前致谢!

最佳答案

您可以使用 COLUMNS_UPDATED

Example usage 1, database journal

Example usage 2, KB 232195此处导出的数字映射到 sys.columns.column_id

我以前有工作示例,但现在没有了

巨大的陷阱:因为metadata visibility ,加入 sys.columns 可能会失败。这在将调用包装在存储过程中的情况下尤为重要。您必须在触发器中使用“EXECUTE AS OWNER”才能

关于SQL 更新触发器列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1379968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com