从字符串名称获取列对象

时间:2013-12-26 14:37:17

标签: sql sql-server-2012

我写了一个列文档代码已使用触发器

在表中更新
insert into dbo.LogTable([Contrnt])
select 
i.COLUMN_NAME + 'is update!'
from INFORMATION_SCHEMA.COLUMNS i
    where UPDATE (answer) and  i.TABLE_NAME='Questions' 

但是这段代码效率不高,因为我想浏览所有列,修改后的内容会像这样记录:

    insert into dbo.LogTable([Contrnt])
select 
i.COLUMN_NAME + 'is update!'
from INFORMATION_SCHEMA.COLUMNS i
    where UPDATE (i.COLUMN_NAME) and  i.TABLE_NAME='Questions' 

现在,因为来自:i.COLUMN_NAME的返回值是一个字符串,并且函数UPDATE没有生成错误。 解决问题的方法是通过名称来表示对象

1 个答案:

答案 0 :(得分:0)

您可以使用打印件将查询脚本构建为字符串,这样您就可以使用循环为所有列生成所有脚本,并在触发器中复制它