Я унаследовал сложное приложение, которое использует много динамического SQL. Многие из хранимых процедур создают и выполняют значительно разные SQL-запросы в зависимости от входных параметров. Есть ли способ, которым я могу видеть исполняемый SQL, без использования SQL-профилировщика - в идеале, из SQL Server Manager Studio?Просмотреть выполненный sql из динамического sql
2
A
ответ
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
+0
Это идеальное спасибо – majjam
3
Я сделал что-то более или менее по тем же строкам, создав таблицу с именем «WhatHappened» с помощью AutoInc BigInt в качестве первичного ключа и большое поле varchar (8000) для хранения динамически созданных команд SQL и затем просто написал динамически созданный SQL в таблицу и позже просмотрел его с помощью Enterprise Manager. Я не знаю, было ли это отличное решение, но это было быстро и просто и сработало.
Добавить инструкцию 'PRINT @' в конце процедуры и выполнить этот процесс вручную. –