0

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

我是说:

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

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

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

4

1 回答 1

2

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

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

exec (@sql)
于 2015-04-30T08:51:57.500 回答