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

时间:2010-05-28 14:45:44

标签: sql sql-server sql-server-2005

我有一个带有一些存储过程(SP)的SQL Server 2005数据库,我想调试...基本上我只想在整个SP执行的某些点检查变量值。

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

所以我的问题是如何检查SP执行中某些点的变量值?有没有办法在某处输出这些值,可能还有一些文本?

1 个答案:

答案 0 :(得分:1)

您可以使用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