SQL如何从其他表列更新基于表的表名

时间:2015-04-30 08:46:18

标签: sql-server tablename

在将生产数据库迁移到测试环境时,我需要更新多个表中的值。表的名称可以在另一个表中找到。我怎样才能做到这一点?

我的意思是:

for each value$ in select replace(tablename,' ','') from table1

update value$ set replace(column1,'A','B')

它看起来像一个嵌套的SQL语句。

1 个答案:

答案 0 :(得分:2)

你需要为此构建一些动态sql。我更喜欢一次性构建它并作为一个整体执行:

declare @sql varchar(max) = '' 
select @sql += '
    update ' + QUOTENAME(replace(tablename,' ','')) + ' 
        set column1 = replace(column1,''A'',''B'')'      
from table1

exec (@sql)