1
我已经阅读了大量有关参数嗅探存储过程和解决方法的文章(特别是在这里)。例如,这里:http://elegantcode.com/2008/05/17/sql-parameter-sniffing-and-what-to-do-about-it/参数嗅探和嵌套存储过程
这是否也适用于由另一个存储过程调用的存储过程?即链接文章中描述的解决方案是否也适用于嵌套存储过程。
此外,如果您在调用存储过程中声明一个名为@PersonID的变量,是否可以在被调用的存储过程中Decalre称为@PersonID的变量,即DECLARE PersonID int。这将是可变的阴影。
谢谢。因此,如果我在存储过程2中存储过程1和PersonID = 2中声明了PersonID = 1,那么在控制从存储过程2传回存储过程1后,是否可以确认PersonID等于1?是否存在使用相同变量的风险名称? – w0051977 2012-01-31 13:35:40
是的,PersonID = 1将保留在proc 1中。proc 2的内部没有任何影响。想想你的.net或java方法和“封装”。没有风险,如果它是有道理的。你的嵌套过程是一种方法,可以单独调用 – gbn 2012-01-31 13:39:51
谢谢。我几乎准备好回答这个问题。我在显式事务中使用'XACT_ABORT ON'来确保事务在存储过程出错时回滚。因此,如果VB6命令对象(这将调用存储过程)存在超时,或者存储过程引发异常;该计划将处理它。我最近才发现:'XACT_ABORT ON'。从VB6程序调用存储过程时还有什么我应该考虑的吗? – w0051977 2012-02-01 13:43:46