【发布时间】:2015-03-04 00:24:39
【问题描述】:
我验证了下面的链接,因为有人 (@Oliver) 发布了我的问题的副本。但是这个查询返回最后一个执行脚本。这与我的问题无关。
Last executed queries for a specific database
我有一个带有 Sample_Training 的数据库,我在其中创建了一个存储过程,后来我删除了它,现在我想检索那个已删除的存储过程。
我是公司的员工,所以我没有管理权限
DECLARE @Date_From DATETIME = '2015-01-02'
DECLARE @Date_To DATETIME = '2015-01-05'
SELECT
CONVERT(VARCHAR(MAX), SUBSTRING([RowLog Contents 0], 33, LEN([RowLog Contents 0]))) AS [Script]
FROM
fn_dblog(NULL,NULL)
WHERE
[Operation] = 'LOP_DELETE_ROWS'
AND [Context] = 'LCX_MARK_AS_GHOST'
AND [AllocUnitName] = 'sys.sysobjvalues.clst'
AND [TRANSACTION ID] IN (SELECT DISTINCT [TRANSACTION ID]
FROM sys.fn_dblog(NULL, NULL)
WHERE Context IN ('LCX_NULL') AND Operation IN ('LOP_BEGIN_XACT')
AND [Transaction Name] = 'DROPOBJ'
AND CONVERT(NVARCHAR(11), [Begin Time]) BETWEEN @Date_From AND @Date_To)
AND SUBSTRING([RowLog Contents 0], 33, LEN([RowLog Contents 0])) <> 0
通过上面的查询我可以得到存储过程,现在我的问题是如何得到函数,表。
【问题讨论】:
-
既然你是一家公司的员工,我相信这家公司足够专业,有一个源代码控制系统,而你'足够专业,可以检查您的 SQL 脚本 --> 只需从源代码管理中检索创建该存储过程的脚本并再次运行它 - 完成!
-
首先检查您提到的查询重复。它将给出最后执行查询。我不是在询问最后一次执行查询。如果您有 SSMS,只需运行我的查询并检查结果。 @奥利弗
标签: sql-server database sql-server-2008 select stored-procedures