2010-05-28 94 views
0

我有一个SQL Server 2005数据库与一些存储过程(SP),我想调试......基本上我会就像在SP执行期间的特定点检查变量值一样。调试存储过程,而不使用SSMS 2008调试器,或Visual Studio调试器(输出变量值?)

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

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

回答

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