【问题标题】:How to get the really executed stored procedure text如何获取真正执行的存储过程文本
【发布时间】:2014-12-16 07:46:13
【问题描述】:

如果执行失败,我的存储过程返回 -1。我使用 ADO.NET 来执行存储过程。现在,我猜某些参数值是非法的,所以执行失败了。但是我不知道如何获取执行的文本,有什么想法吗?

【问题讨论】:

  • 任何代码?向我们展示您如何执行该 SP。
  • 要么调试代码并检查传递给存储过程的所有参数,要么运行 SQL sercer Profiler 来检查传递的确切文本,然后在 SSMS 中运行相同的文本。

标签: c# sql-server tsql stored-procedures ado.net


【解决方案1】:

如果您将查询准备为 NVARCHAR 类型然后执行它,那么您可以使用

打印@查询

在 SSMS 中查看将要执行的 SP 的文本。

【讨论】:

    【解决方案2】:

    执行以下语句以获取您执行的确切内容:

    SELECT object_name(b.objectid) AS obj_name, a.execution_count, a.last_execution_time, b.text
    FROM sys.dm_exec_query_stats a
    CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS b
    where text like '%Your_SP_NAME_HERE%'
    ORDER BY 2 DESC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多