当你的才华不能撑起你的野心时,就是你该选择学习的时候了!

Sql Server exec sp_executesql

sp_executesql 提供了输入输出接口,而EXEC没有。 sp_executesql能够重用执行计划,提高执行性能,还可以编写更安全的代码。

declare @TSql nvarchar(MAX),@DT1 datetime,@DT2 nvarchar(10),@id bigint
set @id=1
set @TSql=N'select @DT1=getdate(),@DT2=convert(varchar(10),getdate(),120) where 1=@id'
exec sp_executesql @TSql,N'@DT1 datetime out,@DT2 nvarchar(10) out,@id int',@DT1 out,@DT2 out,@id
select @DT1,@DT2

print @TSql
declare @DT nvarchar(10)
set @id=1
select @DT=convert(varchar(10),getdate(),120) where 1=@id
select @DT

 

posted @ 2022-08-30 15:58  hofmann  阅读(117)  评论(0)    收藏  举报