Modify a database, or the database files and filegroups.
Syntax ALTER DATABASE database ADD FILE filespec [ ,...n ] [TO FILEGROUP {filegroup | DEFAULT} ] [;] ALTER DATABASE database ADD LOG FILE filespec [ ,...n ] [;] ALTER DATABASE database REMOVE FILE logical_file_name [;] ALTER DATABASE database MODIFY FILE filespec [;] ALTER DATABASE database ADD FILEGROUP filegroup [;] ALTER DATABASE database REMOVE FILEGROUP filegroup [;] ALTER DATABASE database MODIFY FILEGROUP filegroup [;] { filegroup_updatability_option | DEFAULT | NAME = new_filegroup } [;] ALTER DATABASE database SET optionspec [ ,...n ] [ WITH termination ] [;] ALTER DATABASE database MODIFY NAME = new_database_name [;] ALTER DATABASE database COLLATE collation [;] filespec: ( NAME = logical_file_name [ , NEWNAME = new_logical_name ] [ , FILENAME = 'os_file_name' ] [ , SIZE = size [ KB | MB | GB | TB ] ] [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ] [ , OFFLINE ] ) filegroup_updatability_option: READ_ONLY READ_WRITE optionspec: ONLINE OFFLINE EMERGENCY SINGLE_USER RESTRICTED_USER MULTI_USER READ_ONLY READ_WRITE DB_CHAINING {ON | OFF} TRUSTWORTHY {ON | OFF} CURSOR_CLOSE_ON_COMMIT {ON | OFF} CURSOR_DEFAULT {LOCAL | GLOBAL} AUTO_CLOSE {ON | OFF} AUTO_CREATE_STATISTICS {ON | OFF} AUTO_SHRINK {ON | OFF} AUTO_UPDATE_STATISTICS {ON | OFF} AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF} ANSI_NULL_DEFAULT {ON | OFF} ANSI_NULLS {ON | OFF} ANSI_PADDING {ON | OFF} ANSI_WARNINGS {ON | OFF} ARITHABORT {ON | OFF} CONCAT_NULL_YIELDS_NULL {ON | OFF} NUMERIC_ROUNDABORT {ON | OFF} QUOTED_IDENTIFIER {ON | OFF} RECURSIVE_TRIGGERS {ON | OFF} RECOVERY {FULL | BULK_LOGGED | SIMPLE} TORN_PAGE_DETECTION {ON | OFF} PAGE_VERIFY {CHECKSUM | TORN_PAGE_DETECTION | NONE} PARTNER = 'partner_server' PARTNER FAILOVER PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS PARTNER OFF PARTNER RESUME PARTNER SAFETY {FULL | OFF} PARTNER SUSPEND PARTNER TIMEOUT integer WITNESS = 'witness_server' WITNESS OFF DATE_CORRELATION_OPTIMIZATION {ON | OFF} PARAMETERIZATION {SIMPLE | FORCED} ENABLE_BROKER DISABLE_BROKER NEW_BROKER ERROR_BROKER_CONVERSATIONS ALLOW_SNAPSHOT_ISOLATION {ON | OFF} READ_COMMITTED_SNAPSHOT {ON | OFF} termination: ROLLBACK AFTER integer [SECONDS] ROLLBACK IMMEDIATE NO_WAIT Key: MODIFY FILE Modify file location or properties, Only one <filespec> property can be changed at a time. FILEGROWTH Add new space in increments of x, MB, KB, GB, TB, or percent (%) A value of 0 will set automatic growth to off. filespec OFFLINE Set the file offline, make all objects in the filegroup inaccessible. To set the file back online restore the file from a backup. optionspec OFFLINE Close the database, clean shut down. EMERGENCY Mark the database as READ_ONLY, disable logging, and restrict access to members of the sysadmin fixed server role. DB_CHAINING Database can be accessed by external resources (objects from another database) AUTO_CLOSE Cleanly shut down the database when no users are connected, this will free up its resources. Database mirroring requires AUTO_CLOSE OFF. AUTO_SHRINK he database files are candidates for periodic shrinking.
Examples
-- Rename a database USE master;
GO ALTER DATABASE MyDatabase MODIFY NAME = SalesDatabase; GO -- Move a file USE master;
GO ALTER DATABASE MyDatabase MODIFY FILE ( NAME = MyData1, FILENAME = 'c:\demo\data_01.mdf' ); GO -- Drop a file USE master;
GO ALTER DATABASE MyDatabase
REMOVE FILE MyData1; -- Add a filegroup and 2 datafiles USE master;
GO ALTER DATABASE SS64
ADD FILEGROUP SS64FG1; ALTER DATABASE SS64
ADD FILE
( NAME = SS64_dat2,
FILENAME = 'E:\DATA\ss64database\SS64_data2.mdf',
SIZE = 100MB,
MAXSIZE = 150MB,
FILEGROWTH = 25MB ),
( NAME = SS64_dat3,
FILENAME = 'E:\DATA\ss64database\SS64_data3.mdf',
SIZE = 100MB,
MAXSIZE = 150MB,
FILEGROWTH = 25MB )
) TO FILEGROUP SS64FG1;
GO -- Gain exclusive access, rollback all incomplete transactions. USE master;
GO
ALTER DATABASE SS64
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
"All conservatism is based upon the idea that if you leave things alone you leave them as they are. But you do not. If you leave a thing alone you leave it to a torrent of change" ~ G.K. Chesterton
Related commands:
CREATE DATABASE
DROP DATABASE
sys.databases
Equivalent Oracle command:
ALTER DATABASE