我想知道,当在表中插入一行时,查询是插入了哪些列,并且没有隐式设置为空。
在这种情况下,常见的解决方案是在触发器中使用update(col)
或column_updated()-但文档明确指出:
IF UPDATE returns the TRUE value in INSERT actions because the columns have either explicit values or implicit (NULL) values inserted.
(与更新的列相同)。
有什么方法可以绘制插入的列?
答案 0 :(得分:0)
除了运行跟踪和检查查询外,我不这么认为。这实际上是一个很大的问题,因为它已经七个小时没有得到回答。也许我会将其添加到我的一系列面试问题中...
答案 1 :(得分:0)
纠正我,如果我错了。您是否正在考虑做这样的事情?
INSERT INTO
TableName (
ColumnName1,ColumnName2
)
OUTPUT inserted.ColumnName1,inserted.ColumnName2
VALUES
('X','Y','Z');
还是类似的东西?
SELECT DISTINCT column_name, table_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name IS NOT NULL