如何找到已删除数据库的数据库 ID?

Rom*_*man 4 sql-server sql-server-2012

删除数据库后,在哪里可以查看/查找数据库 ID?

我在软件/硬件环境中工作,我们在我们的软件中使用唯一的 DB ID 同步了锁定单元(原型)。为了重置这个锁定单元,我们需要知道数据库 ID。不幸的是,DB 被完全删除了,我们无法继续我们的工作。

大约 6-7 天前删除了数据库。

Han*_*non 6

您可以检查默认跟踪以查看已删除数据库的数据库 ID,假设该数据库最近被删除足以在跟踪中捕获删除。

此 T-SQL 将向您显示跟踪记录:

DECLARE @trcfilename VARCHAR(1000);

SELECT @trcfilename = path 
FROM sys.traces 
WHERE is_default = 1;

IF (SELECT COALESCE(OBJECT_ID('tempdb..#trctemp'), 0)) <> 0
BEGIN
    DROP TABLE #trctemp;
END

SELECT *
INTO #trctemp
FROM sys.fn_trace_gettable(@trcfilename, default) tt

SELECT tt.DatabaseID
    , tt.DatabaseName
    , tt.StartTime
    , tt.HostName
    , tt.LoginName
    , tt.ApplicationName
FROM #trctemp tt
WHERE tt.eventclass = 47 
    AND tt.objecttype = 16964
ORDER BY tt.StartTime DESC;
Run Code Online (Sandbox Code Playgroud)