SQL Update不保存受影响的行?

时间:2014-12-30 01:08:19

标签: sql sql-server sql-server-2012

我还是很多核心SQL的新手,所以这就是我的问题:

我有一个包含很多名为C441C442C443等列的表格,我试图循环它们并更改{{1}在所有这些中,值为1,这是我尝试过的:

SMALLINT

它会正确打印列名称,例如

DECLARE @count INT;
DECLARE @field varchar(max);

SET @count = 441;

WHILE (@count < 551)
BEGIN
    SET @field = ('C' + CAST(@count AS VARCHAR));
    PRINT @field;

    UPDATE #tablenamenotrelevant# 
    SET @field = 1 
    WHERE [MemberId] = 1060;

    SET @count = (@count + 1);
END

但是当我从表中选择值时,它们没有被改变,我错过了什么简单的事情?

我正在使用SQL Server 2012 Management Studio。

1 个答案:

答案 0 :(得分:2)

您需要使用动态TSQL:

 declare @sql varchar(1000)
 set @sql = 'UPDATE #tablenamenotrelevant# SET ' + @field + ' = 1 WHERE [MemberId] = 1060;'
 exec (@sql)

或者可能更好,创建一个设置所有相关列的单个更新语句并执行它。