想知道是否有一种方法可以在while循环中的每个循环中迭代并将SQL中的字符串连接到新列。
set nocount on
declare @rowcount INT,
@BL_A VARCHAR(MAX)
set @rowcount =2
while @rowcount <=12
begin
set @BL_A = '[DB1].[dbo].[Table1].[Col_'+CAST(@rowcount as varchar(MAX))+']'
print @BL_A
update [DB1].[dbo].[Table1]
set @BL_A = [DB2].[dbo].[Table2].[Y_Value]
from [DB2].[dbo].[Table2]
where [DB1].[dbo].[Table1].[X_Value] = [DB2].[dbo].[Table2].[X_Value];
set @rowcount= @rowcount+1
end
print 'End of Script'
查询运行时没有错误并打印出来,但不会更新列
[DB1].[dbo].[Table1].[Col_2]
[DB1].[dbo].[Table1].[Col_3]
....
[DB1].[dbo].[Table1].[Col_12]
End of Script
答案 0 :(得分:1)
请创建动态查询以更新表格,请尝试如下:
exec ('update [DB1].[dbo].[Table1]
set '+@BL_A+' = [DB2].[dbo].[Table2].[Y_Value]
from [DB2].[dbo].[Table2]
where [DB1].[dbo].[Table1].[X_Value] = [DB2].[dbo].[Table2].[X_Value];')
HTH!