Есть ли способ восстановить замененную Хранимую процедуру после восстановления. Я забыл создать резервную копию перед заменой базы данных.SQL Заменена хранимая процедура
ответ
@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
Неверно: «Восстановление базы данных очищает кэш плана для экземпляра SQL Server». https://msdn.microsoft.com/en-us/library/ms186858.aspx – dean
@dean! Я говорю, чтобы восстановить с другим именем (не перезаписывать) и получить эту хранимую процедуру. используйте некоторый «здравый смысл» –
Да, но я ссылался на первую часть вашего ответа («Если вы недавно выполнили этот SP, то вы можете получить это из кеша»). OP уже заменил базу данных - так что ее больше нет в кеше. – dean
Нет, не существует. Это отличный пример того, почему я защищаю исходный контроль для объектов базы данных, а также скомпилированного кода.
Совершенно безответственно не помещать весь код базы данных в Source Control. – HLGEM
Извините, но мне кажется маловероятным, так как вы фактически переписываете всю базу данных с содержимым ранее сохраненного .bak-файла. Этот вид полностью поворачивает часы назад. – cars10m
Спасибо cars10, я пытаюсь проверить, есть ли в кеше или что-то, что я могу использовать, чтобы получить нужные мне скрипты, но не 100%. Я могу получить скрипт – jankenshin2004
Только если у вас есть скрипт, хранящийся где-то за пределами базы данных, или если вы можете восстановить резервную копию базы данных, созданную до изменения. – dean