MSSQL:“无法为对象分配空间”dbo.SORT数据库中的临时运行存储,因为“PRIMARY”文件组已满

我一直在这个问题的块几次今天检查博客post到处都没有帮助我解决这个问题。

我试图添加一个非聚集索引到约700万行的表。 1TB硬盘上的数据库大概是4GB。 我有TempDB在同一个驱动器上,设置为无限制的自动增长10%。 驱动器剩下大约950GB。 我不断收到这个错误。

这是SQL Server 2008 Standard。

当我尝试“重buildINdexes”时,出现同样的错误。

确保你使用的是SORT_IN_TEMPDB选项; 这听起来不像你是基于你的tempdbconfiguration的描述。 听起来像是在数据库中进行sorting,并且目标文件组正在填充。

在通过SQL Server Management Studio的新索引UI创build索引时,默认情况下不使用SORT_IN_TEMPDB选项。 您可以在“新build索引”屏幕的“选项”窗格中启用它。

在T-SQL中是这样的(对于非聚集索引):

 CREATE NONCLUSTERED INDEX [IX_MyNewIndex] ON [MyTable] ( COL1 ASC, COL2 ASC, ... ) WITH ( ...., SORT_IN_TEMPDB = ON, .... )