【发布时间】:2017-05-17 11:49:07
【问题描述】:
create table #tableA
(
Id int,
ColumnName1 nvarchar(50),
ColumnName2 nvarchar(50),
ColumnName3 nvarchar(50),
ColumnName4 nvarchar(50)
)
create table #tableB
(
Id int,
UpdateColumn nvarchar(50),
UpdateValue nvarchar(50)
)
Insert Into #tableA values (1,'Val1','Val2','Val3','Val4')
Insert Into #tableA values (2,'Val1','Val2','Val3','Val4')
Insert Into #tableA values (3,'Val1','Val2','Val3','Val4')
Insert Into #tableA values (4,'Val1','Val2','Val3','Val4')
Insert Into #tableB values (1,'ColumnName4','Column4Value')
Insert Into #tableB values (2,'ColumnName1','Column1Value')
declare @Sql nvarchar(max)
set @Sql='Update a set {The column should be the value from b.UpdateColumn}={b.UpdateValue} from #tableA a join #tableB b on a.Id=b.Id'
print @Sql
exec sp_executesql @Sql
我需要根据#tableB 值动态更新#tableA 列。
我尝试通过连接 join 子句中的值来构建动态 sql,但没有任何效果。
请建议..提前谢谢...
【问题讨论】:
-
循环遍历#tableb 并形成一个动态更新脚本可以,但使用循环由您自行决定。
-
我之前做过,工作正常,但性能不会那么好......
标签: sql sql-server dynamic-sql