Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Узнать текст запроса  [new]
_human
Member

Откуда:
Сообщений: 560
случайно закрыл вкладку в SSMS и не сохранил важный запрос.
можно ли найти в сервере текст последнего запроса?


help !
28 ноя 13, 01:54    [15203002]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текст запроса  [new]
sdet
Member

Откуда:
Сообщений: 463
_human,
Может там есть
C:\Users\[your_user_name]\Documents\SQL Server Management Studio\Backup Files\Solution1
28 ноя 13, 02:03    [15203024]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текст запроса  [new]
_human
Member

Откуда:
Сообщений: 560
sdet,
там только текст открытых вкладок в SSMS во временных файлах.

мож кому-то пригодится
Recover unsaved SQL query Scripts SQL Server
28 ноя 13, 02:07    [15203030]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текст запроса  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
_human,

по ссылочке сходил и вот такое оттуда выполнил
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC
и чего-то не понимаю откуда там такое
там написано вроде что вчера выполнялись всякие create trigger, create function....
но они явно вчера не выполнялись
причем так массово это вообще нереально
28 ноя 13, 11:58    [15204616]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текст запроса  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
врубился
это каждая строчка каждого выполняемого триггера или функции туда попадает
в том числе и первая где create trigger ...
28 ноя 13, 23:06    [15208822]     Ответить | Цитировать Сообщить модератору
 Re: Узнать текст запроса  [new]
o-o
Guest
leov,

да? а у меня ничего такого не попадает.
ну т.е. мой триггер при выполнении не попадает.
спецом вешаю на табличку триггер на инсерт, tr_1, и начинаю усиленно в таблицу вставку делать.
в запрос добавляю строчку
where execsql.text like '%tr_1%'

и вообще ничего не выводит.

если же переделать на
where execsql.text like '%trigger%'

то выводится нечто. внутреннее серверное, не мое
+
SELECT tr.name AS [Name], tr.object_id AS [ID], CASE WHEN tr.type = N'TR' THEN 1 WHEN tr.type = N'TA' THEN 2 ELSE 1 END AS [ImplementationType], CAST(                  tr.is_ms_shipped              AS bit) AS [IsSystemObject], CAST(CASE WHEN ISNULL(smtr.definition, ssmtr.definition) IS NULL THEN 1 ELSE 0 END AS bit) AS [IsEncrypted] FROM sys.triggers AS tr LEFT OUTER JOIN sys.sql_modules AS smtr ON smtr.object_id = tr.object_id LEFT OUTER JOIN sys.system_sql_modules AS ssmtr ON ssmtr.object_id = tr.object_id WHERE (tr.parent_class = 0) ORDER BY [Name] ASC


у меня триггеров вообще нет, т.е. не было, до сегодняшнего вечера.
а сам запрос на вставку попадает, и дата последнего запуска исправно меняется,
и вообще он первым в выборке, как и запрошено.

а зато запрос с where execsql.text like '%create%' выдает всякое. но тоже не мое:
create procedure sys.sp_addrolemember ...
CREATE PROCEDURE sp_get_sqlagent_properties...

ну еще роли я могу признать, что моя работа, действительно запускаю sys.sp_addrolemember,
но уж агента я точно не трогаю.
29 ноя 13, 00:09    [15209095]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить