SELECT变为变量,使用另一个变量作为列名

时间:2016-06-08 14:09:09

标签: sql sql-server-2008

我需要使用也存储在变量中的列名来选择变量,但它只是选择列名的值。

下面的代码循环遍历表的所有列,并查找每列的旧值和新值(TRIGGER的一部分)。问题是,它不是将旧值和新值分配给变量,而是分配@fieldname变量的值。

Set @getColumnName = Cursor For
    Select Column_name From Information_Schema.Columns Where Table_Name = @tablename

Open @getColumnName
    Fetch Next From @getColumnName Into @fieldname 

    While @@FETCH_STATUS = 0
    Begin
        Select @oldValue = @fieldname From deleted
        Select @newValue = @fieldname From inserted

        -- Do something with the values here
        -- @oldValue and @newValue are now equal to @fieldname
        -- Actually want them to be the result of the query
    End
Close @getColumnName

1 个答案:

答案 0 :(得分:0)

由于D Stanley的建议

,管理使用动态SQL对其进行排序
 <a href="/hello">click</a>