0

Есть ли способ восстановить замененную Хранимую процедуру после восстановления. Я забыл создать резервную копию перед заменой базы данных.SQL Заменена хранимая процедура

+0

Извините, но мне кажется маловероятным, так как вы фактически переписываете всю базу данных с содержимым ранее сохраненного .bak-файла. Этот вид полностью поворачивает часы назад. – cars10m

+0

Спасибо cars10, я пытаюсь проверить, есть ли в кеше или что-то, что я могу использовать, чтобы получить нужные мне скрипты, но не 100%. Я могу получить скрипт – jankenshin2004

+2

Только если у вас есть скрипт, хранящийся где-то за пределами базы данных, или если вы можете восстановить резервную копию базы данных, созданную до изменения. – dean

ответ

-2

@RexAtienza, Если вы недавно выполнили этот SP, вы можете получить это из кеша. Также найдите любую старую резервную копию своей БД, где вы можете получить свой старый SP.Проверьте приведенный ниже запрос, чтобы узнать из кеша.

SELECT DB_Name(qt.[dbid]) AS 'databaseName' 
    ,Object_Name(qt.objectid, qt.[dbid]) AS 'procName' 
    ,Max(qs.last_execution_time) AS 'last_execution' 
    ,qt.TEXT 
FROM sys.dm_exec_query_stats AS qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt 
where Object_Name(qt.objectid, qt.[dbid]) ='YOUR_PROC_NAME' 
GROUP BY db_name(qt.[dbid]) 
    ,Object_Name(qt.objectid, qt.[dbid]) 
    ,qt.TEXT 
ORDER BY databaseName 
    ,procName 
+3

Неверно: «Восстановление базы данных очищает кэш плана для экземпляра SQL Server». https://msdn.microsoft.com/en-us/library/ms186858.aspx – dean

+0

@dean! Я говорю, чтобы восстановить с другим именем (не перезаписывать) и получить эту хранимую процедуру. используйте некоторый «здравый смысл» –

+0

Да, но я ссылался на первую часть вашего ответа («Если вы недавно выполнили этот SP, то вы можете получить это из кеша»). OP уже заменил базу данных - так что ее больше нет в кеше. – dean

1

Нет, не существует. Это отличный пример того, почему я защищаю исходный контроль для объектов базы данных, а также скомпилированного кода.

+1

Совершенно безответственно не помещать весь код базы данных в Source Control. – HLGEM