知识大全 sp

Posted

篇首语:不塞不流,不止不行。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 sp相关的知识,希望对你有一定的参考价值。

  execute相信大家都用的用熟了 简写为exec 除了用来执行存储过程 一般都用来执行动态Sql

  sp_executesql sql 中引入的新的系统存储过程 也是用来处理动态sql的 如

  exec sp_executesql @sql N @count int out @id varchar( ) @cou out

   @id

  @sql为拼成的动态sql

  N @count int out @id varchar( ) 为拼成的动态sql内的参数列表

  @cou out @id为为动态sql内参数列表提供值的外部参数列表

  那么它们之间有什么区别呢?

   它们之间最大的区别是嵌入式的参数 如下面一个语句

  declare @sql nvarchar( )

  declare @id varchar( )

  set @id=

  set @sql= select count(*) from emp where id= + @id

  exec @sql

  我想把得到的count(*)传出来 用传统的exec是不好办到的 但是用sp_executesql则很容易就办到了

  declare @sql nvarchar( )

  declare @cou int

  declare @id varchar( )

  set @id=

  set @sql= select @count=count(*) from emp where id=@id

  exec sp_executesql @sql N @count int out @id varchar( ) @cou out

   @id

  print @cou

   性能

  可以看到 如果用exec 由于每次传入的@id不一样 所以每次生成的@sql就不一样 这样每执行一次Sql 就必须重新将要执行的动态Sql重新编译一次

  但是sp_executesql则不一样 由于将数值参数化 要执行的动态Sql永远不会变化 只是传入的参数的值在变化 那每次执行的时候就秒用重新编译 速度自然快多了哈!

  注意

   sp_executesql要求动态Sql和动态Sql参数列表必须是Nvarchar 比如上个例子的@sql N @count int out @id varchar( ) 我记得在sql 中Varchar也可以的 但是我打了Sp 补丁后就不行了 必须为Nvarchar

   动态Sql的参数列表与外部提供值的参数列表顺序必需一致 如

  N @count int out @id varchar( ) @cou out @id

  @count 对应 @cou @id对应@id

  如果不一致 必须显式标明 如

  N @count int out @id varchar( ) @id=@id @count=@cou out

cha138/Article/program/MySQL/201311/29556

相关参考

知识大全 房地产销售中现场SP有哪些

房地产销售中现场SP有哪些  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!房地产销售中现场SP有哪些S

知识大全 QA里执行sp

QA里执行sp  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Article

知识大全 sp判断中西混字符串长度

  sp判断中西混字符串长度cha138/Article/program/net/201311/14205

知识大全 sql中利用SP

sql中利用SP  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当你需要找到一个表格是否有一个关

知识大全 VS2008 SP1安装技巧

SQLServer2008:VS2008SP1安装技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 用MySQL实现SQL Server的Sp

用MySQL实现SQLServer的Sp  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  从MyS

鱼虱(鲺Argulus sp.)

感染的迹象鱼虱是盘状寄生虫,直径在8~12毫米之间,有各种颜色,从浅绿色到褐色都有。可以看到他们贴在鱼体上和鳍上。  受侵害的鱼类鱼虱能侵害很多种冷水鱼。几乎不可能在热带品种上发现它们,除非寄生虫是在

鱼虱(鲺Argulus sp.)

感染的迹象鱼虱是盘状寄生虫,直径在8~12毫米之间,有各种颜色,从浅绿色到褐色都有。可以看到他们贴在鱼体上和鳍上。  受侵害的鱼类鱼虱能侵害很多种冷水鱼。几乎不可能在热带品种上发现它们,除非寄生虫是在

知识大全 SQL Server 2005 SP1的新特性

SQLServer2005SP1的新特性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SQLS

知识大全 .NET 3.5 SP1中的JIT增强

你可能错过的东西:.NET3.5SP1中的JIT增强  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!