2015-03-19 62 views
2

我已經繼承了一個使用大量動態SQL的複雜應用程序。許多存儲過程根據輸入參數構造並執行顯着不同的SQL語句。有沒有一種方法可以查看執行的SQL,而無需使用SQL Profiler - 理想情況下是從SQL Server Manager Studio中執行?查看從動態sql執行的SQL

+1

在過程結束時添加'PRINT @ statement'並手動執行該過程。 – 2015-03-19 12:04:28

回答

1

對於exp,您可以使用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 

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

+0

非常感謝 – majjam 2015-03-19 12:31:39

3

我通過創建一個名爲'WhatHappened'的AutoInc BigInt作爲主鍵以及一個大型varchar(8000)字段來保存動態創建的SQL命令,從而在相同的行上做了一些或多或少的事情,那麼只需將動態創建的SQL寫入表中,稍後使用Enterprise Manager查看它。我不知道這是一個很好的解決方案,但它很快捷,很有效。