This error occurs when there is not enough space on the device to create the tempdb database.
The procedure for handling this error depends on whether the error occurred on a user database or on tempdb.
Or
If the error occurred on a user database
Create the database on a different disk.
Or
Delete some files to free space on the disk.
If the error occurred on tempdb
If you moved tempdb from one device back to any default device and you do not have enough space on the device (2 MB), Microsoft® SQL Server™ will attempt to create tempdb on another device. If you do not have a device with at least 2 MB free, SQL Server will not start. Start SQL Server using the -f minimum configuration option.
You can free at least 2 MB on the device, or create a new device with at least 2 MB. If you create a new device, make sure it is specified as a default device, as in this example:
sp_diskdefault new_device_name, defaulton
If no default is specified, SQL Server sends an "out of memory" message (you can ignore this message) and then moves tempdb to RAM automatically.
Target | Microsoft.SQLServer.2000.DBEngine | ||
Category | EventCollection | ||
Enabled | True | ||
Event Source | $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$ | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application | ||
Comment | Mom2005ID='{10765239-376F-4D97-B6FE-86ED92EFE47B}' |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
EventDS | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<Rule ID="Microsoft.SQLServer.2000.CREATE_DATABASE_failed__Could_not_allocate_enough_disk_space_for_a_new_database_on_the_named_disks" Target="SQL2000Core!Microsoft.SQLServer.2000.DBEngine" Enabled="true" Comment="Mom2005ID='{10765239-376F-4D97-B6FE-86ED92EFE47B}'" Remotable="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="EventDS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>^(17052|17055)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery>EventDescription</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005BooleanRegularExpression</Operator>
<Pattern>((^.*1803 and (not ^.*\n.*1803)) or (^.*1803.*\n.*1803)) AND (NOT ^.*[0-9]+.*1803) AND (NOT ^.*1803[0-9]+)</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertOwner>$Data/PublisherName$</AlertOwner>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2000.CREATE_DATABASE_failed__Could_not_allocate_enough_disk_space_for_a_new_database_on_the_named_disks.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>