【问题标题】:SQL Server PROCEDURE Variable Declaration [closed]SQL Server PROCEDURE 变量声明
【发布时间】:2017-11-24 15:09:57
【问题描述】:

我怀疑为什么在调用带参数的存储过程时必须将变量重新分配给新值。 在程序中,我们需要 2 个变量。并且需要重新分配变量以在过程中使用。

【问题讨论】:

  • 显示你的代码,说明你的问题,阅读How to Ask
  • 您使用的是哪个DBMS 产品?后格雷斯?甲骨文? “SQL”只是一种查询语言,并不是特定数据库产品的名称。

标签: sql variables stored-procedures declaration procedure


【解决方案1】:

参数嗅探

https://blogs.msdn.microsoft.com/turgays/2013/09/10/parameter-sniffing-problem-and-possible-workarounds/

SQL Server 使用(嗅探) 程序第一次编译时发送的参数并放入 计划缓存。之后,每次再次执行该过程时,SQL 服务器从缓存中检索执行计划并使用它(除非 有重新编译的原因)。潜在问题出现 当第一次执行存储过程时,集合 参数为该组参数生成一个可接受的计划,但 对其他更常见的参数集非常不利。

提供的链接中的一个解决方案是使用局部变量。例如你已经在做的事情。

【讨论】:

  • 感谢更新
  • @VenkateshKopulaSivakumar 没问题,先生,祝您有美好的一天。
【解决方案2】:

我相信这回答了您的问题(或我对此的理解):

Global variables in SQL

【讨论】:

    猜你喜欢
    • 2020-04-08
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多