查看从动态 sql 执行的 sql

View executed sql from dynamic sql

我继承了一个使用大量动态 SQL 的复杂应用程序。许多存储过程根据输入参数构造和执行截然不同的 SQL 语句。有没有一种方法可以在不使用 SQL 分析器的情况下查看已执行的 SQL - 最好是在 SQL Server Manager Studio 中?

我通过创建一个名为 'WhatHappened' 的 table 以 AutoInc BigInt 作为主键和一个大的 varchar(8000) 字段来保存动态创建的SQL命令,然后简单的把动态创建的SQL写到table里面,后面用Enterprise Manager看。我不知道这是否是一个很好的解决方案,但它快速、简单并且有效。

您可以使用 PRINT 语句

实验

IF @@OPTIONS & 512 <> 0
    PRINT N'This user has SET NOCOUNT turned ON.';
ELSE
    PRINT N'This user has SET NOCOUNT turned OFF.';
GO

一样使用
PRINT @YourDynamicSQLStatement

参考。 https://msdn.microsoft.com/en-IN/library/ms176047.aspx