2015-03-19 3 views
2

Я унаследовал сложное приложение, которое использует много динамического SQL. Многие из хранимых процедур создают и выполняют значительно разные SQL-запросы в зависимости от входных параметров. Есть ли способ, которым я могу видеть исполняемый SQL, без использования SQL-профилировщика - в идеале, из SQL Server Manager Studio?Просмотреть выполненный sql из динамического sql

+1

Добавить инструкцию 'PRINT @' в конце процедуры и выполнить этот процесс вручную. –

ответ

1

Вы можете использовать инструкцию PRINT

для exp.

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

+0

Это идеальное спасибо – majjam

3

Я сделал что-то более или менее по тем же строкам, создав таблицу с именем «WhatHappened» с помощью AutoInc BigInt в качестве первичного ключа и большое поле varchar (8000) для хранения динамически созданных команд SQL и затем просто написал динамически созданный SQL в таблицу и позже просмотрел его с помощью Enterprise Manager. Я не знаю, было ли это отличное решение, но это было быстро и просто и сработало.

Смежные вопросы