Answers:
右键单击数据库,转到文件。您可以看到原始文件名。这将帮助您轻松找到正确的数据库名称。重命名不会更改文件名。
您也可以尝试看看您的fn_dblog
。它没有记录,但您可以查看(和过滤)最新操作。
SELECT *
FROM fn_dblog(NULL,NULL)
SELECT CAST([RowLog Contents 0] AS sysname) ,CAST([RowLog Contents 1] AS sysname) FROM sys.fn_dblog(NULL,NULL) WHERE Context = 'LCX_BOOT_PAGE' AND [Offset in Row] =52
您可以查看上一次SQL Server启动时的SQL Server日志,并查找“启动数据库'DBName'的每个实例。然后,您可以将此列表与sys.databases的结果进行比较。任何新数据库和您更改的数据库都不会出现在SQL Server日志列表中。
另一种也许更好的方法是查询默认跟踪并通过:: fn_trace_gettable database_id进行过滤。假设最近有一些数据库使用情况,databaseName列将显示旧名称,然后在较新的行中显示新名称,其事件类型为Object:Altered。
SELECT *
,cast(value as nvarchar(1000))
FROM ::fn_trace_getinfo(default)
WHERE traceid = 1 and property = 2;
SELECT ftg.StartTime,
ftg.EndTime,
te.name,
ftg.sessionLoginName,
ftg.ObjectName,
ftg.DatabaseName,
ftg.ServerName,
ftg.LoginName,
ftg.hostName,
ftg.NTUserName,
ftg.DatabaseID,
ftg.TextData,
ftg.TargetuserName
,SPACE(10) AS [Space]
,*
FROM ::fn_trace_gettable('Z:\SQLServer\MSSQL\Log\log_5.trc', default) AS ftg
INNER JOIN
sys.trace_events AS te
ON ftg.EventClass = te.trace_event_id
ORDER BY
ftg.StartTime DESC
ALTER DATABASE
权限的特定用户,并且仅当我实际要运行ALTER DATABASE
脚本时才以该用户身份登录。这样一来,您将永远不会做上述事情