SQL提高旅程1->动态SQL exec的替代者Sp_ExecuteSql

 Sp_ExecuteSql最适合执行动态Sql,如果还在用exec关键字执行动态sql,请抛弃他吧,试着使用Sp_ExecuteSql,会让你大吃一惊。

 

 Sp_ExecuteSql 是以参数化的形式执行动态Sql,并且支持输出和输入参数,由于是以参数化的形式执行动态SQL,更易使查询优化器进行复用,因此效率更高。

 由于sp_ExecuteSql支持输出参数,所以Sp_ExecuteSql 可以执行动态SQL并且设置返回 值,当你为exec不能为外部变量,设置返回值烦恼时,Sp_ExecuteSql可以为你做这一切.

 

declare @userID int,@userName nvarchar(50)

exec sp_executeSql N'select @userID = UserID from users where username = @UserName'
,N
'@userID int out,@userName nvarchar(20)'
,
@userID output,@userName = 'oop'

Select @userID

 

如下的文章介绍的非常好。 

http://technet.microsoft.com/zh-cn/library/ms188001.aspx

posted @ 2010-11-07 10:39  JustCodingLife  阅读(543)  评论(0编辑  收藏  举报