Server.DetachDatabase Server.DetachDatabase Server.DetachDatabase Method

정의

SQL Server의 인스턴스에서 데이터베이스를 분리합니다. Detaches a database from the instance of SQL Server.

오버로드

DetachDatabase(String, Boolean) DetachDatabase(String, Boolean) DetachDatabase(String, Boolean)

데이터베이스가 분리 되기 전에 통계를 업데이트 하는 옵션으로 SQL Server 인스턴스에서 지정한 데이터베이스를 분리 합니다. Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.

DetachDatabase(String, Boolean, Boolean) DetachDatabase(String, Boolean, Boolean) DetachDatabase(String, Boolean, Boolean)

데이터베이스가 분리 되기 전에 통계를 업데이트 하는 옵션으로 SQL Server 인스턴스에서 지정한 데이터베이스를 분리 합니다. Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.

설명

데이터베이스의 데이터 및 트랜잭션 로그 파일은 분리할 수 있으며 동일한 SQL Server인스턴스나 다른 인스턴스에 다시 연결할 수 있습니다.The data and transaction log files of a database can be detached and then reattached to the same or another instance of SQL Server. 데이터베이스 분리 및 연결은 데이터베이스를 같은 컴퓨터의 다른 SQL Server 인스턴스로 변경하거나 데이터베이스를 이동하는 경우 유용합니다.Detaching and attaching a database is useful if you want to change the database to a different instance of SQL Server on the same computer, or if you want to move the database.

DetachDatabase(String, Boolean) DetachDatabase(String, Boolean) DetachDatabase(String, Boolean)

데이터베이스가 분리 되기 전에 통계를 업데이트 하는 옵션으로 SQL Server 인스턴스에서 지정한 데이터베이스를 분리 합니다. Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.

public:
 void DetachDatabase(System::String ^ databaseName, bool updateStatistics);
public void DetachDatabase (string databaseName, bool updateStatistics);
Public Sub DetachDatabase (databaseName As String, updateStatistics As Boolean)
매개 변수
databaseName
String String String

분리할 데이터베이스의 이름을 지정하는 String 값입니다. A String value that specifies the name of the database to be detached.

updateStatistics
Boolean Boolean Boolean

분리하기 전에 데이터베이스의 통계를 업데이트할지 여부를 지정하는 Boolean 값입니다. A Boolean value that specifies whether to update the statistics for the database before detaching it. True이면 통계가 업데이트됩니다. If True, statistics are updated. False이면 통계가 업데이트되지 않습니다. If False, statistics are not updated.

예제

Visual BasicVisual Basic

'Connect to the local, default instance of SQL Server.  
Dim srv As Server  
srv = New Server  
Dim owner As String  
Dim logstr as String  
Dim datastr as String  
owner = srv.Databases("AdventureWorks2012").Owner  

'Detach the AdventureWorks2012 database.  
srv.DetachDatabase("AdventureWorks2012", False, False)  

'Display information about the detached database.  
Dim d As DataTable  
Datastr = "C:\Program Files\Microsoft SQL Server"  
Datastr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"  
Logstr = "C:\Program Files\Microsoft SQL Server"  
Logstr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"  
d = srv.DetachedDatabaseInfo(datastr)  
Dim r As DataRow  
Dim c As DataColumn  
For Each r In d.Rows  
    Console.WriteLine("==========================")  
    For Each c In r.Table.Columns  
        Console.WriteLine(c.ColumnName + " = " + r[c].ToString)  
    Next  
Next  

'Check whether the file is a detached primary file.  
Console.WriteLine(srv.IsDetachedPrimaryFile(datastr))  

'Attach the database  
Dim sc As StringCollection  
sc = New StringCollection  
sc.Add(datastr)  
sc.Add(logstr)  
srv.AttachDatabase("AdventureWorks2012", sc, owner, AttachOptions.None)  

PowerShellPowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$db = New-Object Microsoft.SqlServer.Management.Smo.Database  
$db = $srv.Databases.Item("AdventureWorks2012")  
$owner = $db.Owner  
$srv.DetachDatabase("AdventureWorks2012", $FALSE, $FALSE)  
$datastr = "C:\Program Files\Microsoft SQL Server"  
$datastr = $datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"  
$logstr = "C:\Program Files\Microsoft SQL Server"  
$logstr = $logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"  
$d = $srv.DetachedDatabaseInfo($datastr)  
foreach ($r in $d.Rows)  
{  
   Write-Host "=========================="  
   Foreach ($c in $d.Columns)  
   {  
      Write-Host $c.ColumnName "=" $r[$c].ToString()  
   }  
}  
Write-Host $srv.IsDetachedPrimaryFile($datastr)  
$sc = new-object Systems.Collections.Specialized.StringCollection  
$sc.Add($datastr)  
$sc.Add($logstr)  
$srv.AttachDatabase("AdventureWorks2012", $sc, $owner, [Microsoft.SqlServer.Management.Smo.AttachOptions]::None)  

설명

데이터베이스의 데이터 및 트랜잭션 로그 파일은 분리할 수 있으며 동일한 SQL Server인스턴스나 다른 인스턴스에 다시 연결할 수 있습니다.The data and transaction log files of a database can be detached and then reattached to the same or another instance of SQL Server. 데이터베이스 분리 및 연결은 데이터베이스를 같은 컴퓨터의 다른 SQL Server 인스턴스로 변경하거나 데이터베이스를 이동하는 경우 유용합니다.Detaching and attaching a database is useful if you want to change the database to a different instance of SQL Server on the same computer, or if you want to move the database.

추가 정보

DetachDatabase(String, Boolean, Boolean) DetachDatabase(String, Boolean, Boolean) DetachDatabase(String, Boolean, Boolean)

데이터베이스가 분리 되기 전에 통계를 업데이트 하는 옵션으로 SQL Server 인스턴스에서 지정한 데이터베이스를 분리 합니다. Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.

public:
 void DetachDatabase(System::String ^ databaseName, bool updateStatistics, bool removeFulltextIndexFile);
public void DetachDatabase (string databaseName, bool updateStatistics, bool removeFulltextIndexFile);
Public Sub DetachDatabase (databaseName As String, updateStatistics As Boolean, removeFulltextIndexFile As Boolean)
매개 변수
databaseName
String String String

분리할 데이터베이스의 이름을 지정하는 String 값입니다. A String value that specifies the name of the database to be detached.

updateStatistics
Boolean Boolean Boolean

분리하기 전에 데이터베이스의 통계를 업데이트할지 여부를 지정하는 Boolean 값입니다. A Boolean value that specifies whether to update the statistics for the database before detaching it. True이면 통계가 업데이트됩니다. If True, statistics are updated. False이면 통계가 업데이트되지 않습니다. If False, statistics are not updated.

removeFulltextIndexFile
Boolean Boolean Boolean

데이터베이스를 분리하기 전에 전체 텍스트 인덱스 파일을 제거할지 여부를 지정하는 Boolean 값입니다. A Boolean value that specifies whether to remove a full-text index file before detaching the database. True이면 전체 텍스트 인덱스 파일이 제거됩니다. If True, the full-text index file is removed. False이면 전체 텍스트 인덱스 파일이 제거되지 않습니다. If False, the full-text index file is not removed.

예제

Visual BasicVisual Basic

'Connect to the local, default instance of SQL Server.  
Dim srv As Server  
srv = New Server  
Dim owner As String  
Dim logstr as String  
Dim datastr as String  
owner = srv.Databases("AdventureWorks2012").Owner  

'Detach the AdventureWorks2012 database.  
srv.DetachDatabase("AdventureWorks2012", False, False)  

'Display information about the detached database.  
Dim d As DataTable  
Datastr = "C:\Program Files\Microsoft SQL Server"  
Datastr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"  
Logstr = "C:\Program Files\Microsoft SQL Server"  
Logstr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"  
d = srv.DetachedDatabaseInfo(datastr)  
Dim r As DataRow  
Dim c As DataColumn  
For Each r In d.Rows  
    Console.WriteLine("==========================")  
    For Each c In r.Table.Columns  
        Console.WriteLine(c.ColumnName + " = " + r[c].ToString)  
    Next  
Next  

'Check whether the file is a detached primary file.  
Console.WriteLine(srv.IsDetachedPrimaryFile(datastr))  

'Attach the database  
Dim sc As StringCollection  
sc = New StringCollection  
sc.Add(datastr)  
sc.Add(logstr)  
srv.AttachDatabase("AdventureWorks2012", sc, owner, AttachOptions.None)  

PowerShellPowerShell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$db = New-Object Microsoft.SqlServer.Management.Smo.Database  
$db = $srv.Databases.Item("AdventureWorks2012")  
$owner = $db.Owner  
$srv.DetachDatabase("AdventureWorks2012", $FALSE, $FALSE)  
$datastr = "C:\Program Files\Microsoft SQL Server"  
$datastr = $datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Data.mdf"  
$logstr = "C:\Program Files\Microsoft SQL Server"  
$logstr = $logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2012_Log.ldf"  
$d = $srv.DetachedDatabaseInfo($datastr)  
foreach ($r in $d.Rows)  
{  
   Write-Host "=========================="  
   Foreach ($c in $d.Columns)  
   {  
      Write-Host $c.ColumnName "=" $r[$c].ToString()  
   }  
}  
Write-Host $srv.IsDetachedPrimaryFile($datastr)  
$sc = new-object Systems.Collections.Specialized.StringCollection  
$sc.Add($datastr)  
$sc.Add($logstr)  
$srv.AttachDatabase("AdventureWorks2012", $sc, $owner, [Microsoft.SqlServer.Management.Smo.AttachOptions]::None)  

설명

데이터베이스의 데이터 및 트랜잭션 로그 파일은 분리할 수 있으며 동일한 SQL Server인스턴스나 다른 인스턴스에 다시 연결할 수 있습니다.The data and transaction log files of a database can be detached and then reattached to the same or another instance of SQL Server. 데이터베이스 분리 및 연결은 데이터베이스를 같은 컴퓨터의 다른 SQL Server 인스턴스로 변경하거나 데이터베이스를 이동하는 경우 유용합니다.Detaching and attaching a database is useful if you want to change the database to a different instance of SQL Server on the same computer, or if you want to move the database.

적용 대상