代码之家  ›  专栏  ›  技术社区  ›  Albert

不使用SSMS 2008调试器或Visual Studio调试器(输出变量值?)调试存储过程。

  •  0
  • Albert  · 技术社区  · 14 年前

    我有一个SQL Server 2005数据库,其中包含一些要调试的存储过程(SP)。实际上,我只想在整个SP执行过程中的某些点上检查变量值。

    我有SSMS 2008,但是当我尝试使用调试器时,我得到一个错误,它无法调试SQL Server 2005数据库。我不能使用Visual Studio调试器(通过服务器资源管理器进入SP),因为远程调试被我们的防火墙阻止,并且我不允许接触防火墙。

    所以我的问题是,在执行sp的过程中,如何检查特定点的变量值?是否有某种方法可以将这些值与一些文本一起输出到某个地方?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Marc Tidd    14 年前

    您可以使用xp cmdshell存储过程写入文本文件。

    DECLARE @cmd sysname, @var sysname
    SET @var = 'Hello world'
    SET @cmd = 'echo ' + @var + ' > var_out.txt'
    EXEC master..xp_cmdshell @cmd
    

    http://msdn.microsoft.com/en-us/library/ms175046%28SQL.90%29.aspx

    请注意,此过程可能被禁用。该过程允许执行可执行文件,因此不需要时应禁用该过程。有关如何启用该过程,请参阅以下内容。

    http://msdn.microsoft.com/en-us/library/ms190693%28v=SQL.90%29.aspx