我正在编写一个触发器,从触发器我需要访问所谓的"魔术表"插入但不是数据我需要检索列和表名列表。那可能吗?我做了一些研究,但找不到任何相关的东西。非常感谢推动正确的方向
答案 0 :(得分:1)
你的问题必须一步一步解决。第一步是获取表名。您可以从以下解决方案中获得,该解决方案使用@@PROCID
。
SELECT
OBJECT_NAME(parent_id) AS [Table],
OBJECT_NAME(object_id) AS TriggerName
FROM
sys.triggers
WHERE
object_id = @@PROCID
https://stackoverflow.com/a/727109/1339826
然后您可以从INFORMATION_SCHEMA
获取列名称,如下所示:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'TABLE_NAME'