DetachDB Method
This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.
The DetachDB method makes a database invisible to an instance of Microsoft SQL Server.
Syntax
object
.DetachDB(
DBName [,bCheck ] ) as String
Parts
object
Expression that evaluates to an object in the Applies To list.DBName
String that specifies an existing, attached database by name.bCheck
Optional. When TRUE (default), statistics supporting query optimization are updated prior to the detach operation. When FALSE, statistics are not updated prior to the detach operation.
Prototype (C/C++)
HRESULT DetachDB(SQLDMO_LPCSTR DBName,
SQLDMO_LPBSTR pResult,
BOOL bCheck = TRUE);
Returns
A string containing status or error message detail.
Remarks
SQL Server implements database detach and attach operations to allow relocation of the operating system files implementing storage for the database and its transaction log. When the database is detached, the files can be moved without negatively affecting an instance of SQL Server.
Important
Ensure that bCheck is TRUE when detaching a database for which statistics cannot be updated in the future. For example, databases that will be implemented on read-only media such as CD-ROM should always have query optimization statistics updated as the last step before the detach operations.
For more information about attaching a detached database by using SQL Distributed Management Objects (SQL-DMO), see AttachDB Method and AttachDBWithSingleFile Method.
Making a database invisible to an instance of SQL Server by using the DetachDB method requires appropriate permission. The SQL Server login used for SQLServer object connection must be a member of the system-defined role sysadmin.