SQL Server存储过程行号问题

Geo*_*ge2 12 deadlock stored-procedures sql-server-2008

我正在使用SQL Server 2008 Enterprise.我遇到了存储过程foo的第9行遇到死锁问题的问题.我的问题是如何准确找到存储过程的第9行?

我的困惑是因为编码格式问题,如何正确定位第9行.

乔治,提前谢谢

cod*_*ike 14

我从另一个答案中学到一个提示......

如果你这样做

sp_helptext procedure_name
Run Code Online (Sandbox Code Playgroud)

SQL将输出其创建过程语句的"记忆"版本,这就是它显然从行中得到的行号.如果您在"网格输出"模式下具有SSMS,则它还将输出行号(作为结果集的行号).

注意:在我的情况下,它使用CREATE PROCEDURE语句加上它上面的一堆注释,因此第1行比CREATE PROCEDURE调用大约6行.

  • 就像我的情况一样,它是`sp_helptext proc_name`没有parens.为了其他目的,parens可能在这个例子中,但是在我拿出它之前它对我不起作用.虽然+1! (3认同)

gbn*_*gbn 6

这是CREATE PROCEDURE声明中的第9行.SQL语句通常是多行的,因此"第9行"将引用语句的第一行(例如INSERT或UPDATE)

但是,如果您有CREATE PROCEDURE之上的注释或之前的空白行,那么您不能依赖于此...因此,使用ALTER PROC作为批次中的第一行运行ALTER PROC.