[交流]动态sql语句小结

athossmth 2006-06-14 09:36:22
版上看到有人问用sp_executesql执行动态产生的sql语句的问题,sp_executesql很好用,它的格式是
  第一个参数是动态产生的sql命令(A),A中可以含有参数,
  第二个是A中参数的定义,可以指定其IN, OUTPUT属性
  第三个及以后是传给A的参数列,
结合起来,可以动态产生sql语句执行,可以传入参数也可以得到返回参数

关于动态sql语句,了解一下exec "string", exec("string"), sp_executesql,sp_execresultset和OPENQUERRY就基本上可以处理了。

可以参考http://www.sommarskog.se/dynamic_sql.html "The Curse and Blessings of Dynamic SQL"。这篇文章很好,里面还提到了动态产生cursor。目前有越南语、德语、韩语的翻译,可惜没有中文的。

该文没有对OPENQUERRY展开介绍,这里有一些trick,可以绕开一些sql的限制,虽然不太自然。

另外该文也没有介绍sp_execresultset,传入一个参数,是sql语句,sp_execresultset先执行它的到一个执行结果(resultset),然后再执行这个resultset的内容。手头有一个代码,可能太长,贴不上,请自行google。

...全文
778 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
十一月猪 2006-07-06
  • 打赏
  • 举报
回复
;)
新鲜鱼排 2006-07-06
  • 打赏
  • 举报
回复
支持!!
ashzs 2006-07-03
  • 打赏
  • 举报
回复
不错!
jetdw 2006-07-03
  • 打赏
  • 举报
回复
学习&&接分
limitstudio 2006-06-29
  • 打赏
  • 举报
回复
学习
yunzhong80 2006-06-29
  • 打赏
  • 举报
回复
想学习,可没看明白
云中客 2006-06-29
  • 打赏
  • 举报
回复
学习
imzhu 2006-06-29
  • 打赏
  • 举报
回复
study
张海霖 2006-06-29
  • 打赏
  • 举报
回复
阿。一直用它
dichun 2006-06-25
  • 打赏
  • 举报
回复
你说说sp_executesql执行的原理,为什么执行效率比较高。
为什么比EXEC好。

本人觉得
sp_executesql 执行的SQL,执行了一次后,减少第二次SQL的编译时间,所有就快了。
athossmth 2006-06-25
  • 打赏
  • 举报
回复
本人觉得你可以去看看BOL里的query plan
LouisXIV 2006-06-24
  • 打赏
  • 举报
回复
雁过拔毛^^
suntt 2006-06-24
  • 打赏
  • 举报
回复
顶,接分
liangpei2008 2006-06-21
  • 打赏
  • 举报
回复
学习!
gjz_1209 2006-06-21
  • 打赏
  • 举报
回复
学习中。。。
junmail 2006-06-21
  • 打赏
  • 举报
回复
学习!
蓝黑色时代 2006-06-21
  • 打赏
  • 举报
回复
支持一下下~!
leihentulong 2006-06-20
  • 打赏
  • 举报
回复
佩服
rfq 2006-06-19
  • 打赏
  • 举报
回复
学习
chenhu_doc 2006-06-15
  • 打赏
  • 举报
回复
o .. jf
加载更多回复(16)

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧