Способ предварительного просмотра (ретро-просмотра) SQL-запросов SQL Server Management Studio Express
-
04-07-2019 - |
Вопрос
Подскажите, пожалуйста, можно ли предварительно просмотреть (или хотя бы ретро-просмотр, например, в своеобразном лог-файле) SQL-команды, которые SQL Server Management Studio Express собирается выполнить (или только что выполнила)?
Раньше я использовал Embarcadero DBArtisan, который показывает выполнение SQL-запросов перед их фактическим запуском на сервере, поэтому мне очень нравится эта функция в Management Studio.
Я нашел опцию «Автогродирующие сценарии изменения», но в нем показаны только запросы DDL SQL (изменение структуры), а не изменение данных.
Решение
Чтобы ответить на вопрос о просмотре базовых запросов, выполняемых при использовании Management Studio, есть два способа сделать это.
Большинство диалоговых окон в Management Studio позволяют создавать сценарий изменений в файле или буфере обмена, который может быть полезен для анализа внутренних процессов, а также для применения изменений между серверами разработки, промежуточными и производственными серверами.
Альтернативным решением может быть запуск SQL Server Profiler и фильтрация по
- Имя приложения для Management Studio
- Логин для вашей учетной записи
Некоторые из стандартных шаблонов трассировки T-SQL подойдут, или, если вы создадите собственный шаблон трассировки, включите поле TextData в событиях T-SQL SQL:BatchCompleted и SQL:BatchStarting.
Другие советы
Вы можете использовать Query Profiler (из SQL) для просмотра запросов и встраивания в ваш SQL-запрос в транзакцию, а в конце выполнить откат.
BEGIN TRAN
INSERT INTO Clients
SELECT 'Bruno', 'Alexandre';
END
ROLLBACK TRAN
когда вы откатываете транзакцию, процесс возвращается к началу BEGIN TRAN, и вы можете быть уверены, что ничего не было сделано. Это способ фиксации запросов и безопасного отката, если SQL обнаружит ошибку...
нравиться:
IF @@ERROR > 0 GOTO Error
:Error
ROLLBACK TRANSACTION
Вы можете использовать
SET SHOWPLAN_TEXT ON
В начале вашего пакета план и текст запроса будут возвращены вам. Запрос не повлияет на строки, пока включен SHOWPLAN_TEXT
.
Затем вы можете установить для SHOWPLAN_TEXT
значение OFF
, чтобы выполнить запрос.