Consolidate Physical FilesYou may have to consolidate files or reduce the number of physical files for a server that is running SQL Server 2000 or SQL Server 2005. To reduce the number of physical files, you can delete the files. To consolidate the files, you can purge inactive transactions.
Deleting FilesDeleting a data or a transaction log file removes the file from the database. However, you cannot remove a file from a database if the file contains data or transaction log information. You can only remove a file if the file is empty. If you have data that you want to keep, you can migrate the data from a data file to other files in the same filegroup. To migrate the data, you can use a DBCC SHRINKFILE statement and specify the EMPTYFILE clause. Then, SQL Server no longer allows data to be inserted in the file, and you can delete the file by using an ALTER DATABASE statement.
You cannot migrate the transaction log data from one log file to another to delete a transaction log file.
Purging Inactive TransactionsTo purge inactive transactions from a transaction log file, you must truncate or back up the transaction log. When a transaction log file no longer contains any active or inactive transactions, you can remove the log file from the database. To remove the log file from the database, use these steps:
- To shrink data or information in a file and to make the file empty, run the following Transact-SQL statement:
DBCC SHRINKFILE ('<logical file name>', EMPTYFILE )
- To delete a file from a database, run the following Transact-SQL statement:
ALTER DATABASE <Database name> REMOVE FILE <logical file name>
IMPORTANT After you add or delete files, create a database backup immediately. You must create a full database backup before you create a transaction log backup.
Rename Logical File NameTo modify the logical name of a data file or a log file, specify the logical file name you want to rename by using the Name parameter, and then specify the new logical name for the file by using the NewName parameter. To rename the logical file, run the following Transact-SQL statement:
ALTER DATABASE <Database name> MODIFY FILE ( NAME = <current_logical_name>, NEWNAME = <new_logical_name>)
Adding and Deleting Data and Transaction Log Files
Physical Database Files and Filegroups
Expanding a Database
Shrinking a Database
For additional information, click the following article number to view the article in the Microsoft Knowledge Base:
Article ID: 814576 - Last Review: Sep 12, 2008 - Revision: 1