动态创建SQL

declare @sql nvarchar(500)
declare @a varchar(10)
set @a='1234'
declare @b varchar(10)
set @b='SELECT abc'
declare @c varchar(10)
set @c='--qwert'
declare @d varchar(10)
set @d='lkjhg'
set @sql='select @a,@b,@c'--动态拼接SQL
exec sp_executesql @sql,N'@a varchar(10),@b varchar(10),@c varchar(10),@d varchar(10)',@a,@b,@c,@d--加入所有参数变量

如何输入参数呢?
exec sp_executesql @sql,N'@a varchar(10) output,@b varchar(10),@c varchar(10),@d varchar(10)',@a output,@b,@c,@d--加入所有参数变量

要保证参数的条件语句中的参数是传入参数的子集:[语句]⊂[传入参数]

原文地址:https://www.cnblogs.com/magic_evan/p/2125743.html