2

我在 SQL Server 2008 R2 机器上。

根据 SQL Server,我的TempDB样子是这样的:

CREATE DATABASE [tempdb] ON  PRIMARY 
( NAME = N'tempdev', FILENAME = N'D:\Program Files\Microsoft SQL
 Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\tempdb.mdf' , SIZE = 6499584KB , MAXSIZE = 
81920000KB , FILEGROWTH = 10%)

LOG ON 

( NAME = N'templog', FILENAME = N'T:\Program Files\Microsoft SQL 
Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\templog.ldf' , SIZE = 512KB , MAXSIZE = 
UNLIMITED, FILEGROWTH = 10%)

GO

这很好......除了我有 2 个Tempdb文件:Tempdb.mdfTempdb2.mdf.

我在 中的任何地方都找不到它sys.masterdatafiles,我无法在 Windows 中删除它——因为它说 Windows 正在使用它,并且当第一个tempdb文件增长时,它也会增长,所以我知道 SQL Server 正在使用它。

如何在 SQL Server 中找到此文件,以便将其从使用中删除?

4

1 回答 1

2

问题解决了:

要回答问题,是的,我已经停止并重新启动了服务——sys.master_files 或其他任何东西都没有明显变化。

我决定尝试继续添加新的 tempdb 文件。

进入 SSMS,添加了 tempdb2 和 tempdb3,点击 OK....

SQL 回来告诉我 tempdb2 已经在集合中。

WTF,我问自己,没有缩写,并尝试过

SELECT * 
FROM sys.master_files
WHERE DB_NAME(database_id) = 'tempdb'

再次...

还有那个小混蛋,整个人平静而快乐。

刷新 SSMS 中的 tempDB 对象,右键单击属性,文件列表中有文件,可以操作了。

非常非常奇怪。谢谢你帮我整理。

于 2013-01-07T14:48:55.537 回答