带有动态SQL表名的SQL MERGE语句

时间:2017-04-22 17:43:56

标签: sql-server

我尝试使用动态sql表名与下面的MERGE语句,但它不起作用。如果你之前尝试过这个,请告诉我如何使这项工作

plt.imshow(use1.squeeze())

1 个答案:

答案 0 :(得分:1)

这应该有效:

declare @tablename varchar(100)
declare @sql varchar(max)

set @tablename = 'studentname'

set @sql = 'merge ' +  @tablename + ' as target  
using #temptable as source
on (target.student_id = source.class_id)
when not matched by target then 
insert(student_id, class) 
values(source.student_id, source.class)'

print @sql
--exec @sql

通常,它可以帮助打印生成的@sql并检查它是否有任何问题,然后尝试执行它。您确定join应该基于StudentIDClassID来完成吗? 此外,您要在两个字段的目标表StudentIDStudentID中插入..