Server.DetachDatabase 메서드 (String, Boolean)

Detaches the specified database from the instance of SQL Server with the option to update statistics before the database is detached.

네임스페이스:  Microsoft.SqlServer.Management.Smo
어셈블리:  Microsoft.SqlServer.Smo(Microsoft.SqlServer.Smo.dll)

구문

‘선언
Public Sub DetachDatabase ( _
    databaseName As String, _
    updateStatistics As Boolean _
)
‘사용 방법
Dim instance As Server 
Dim databaseName As String 
Dim updateStatistics As Boolean

instance.DetachDatabase(databaseName, _
    updateStatistics)
public void DetachDatabase(
    string databaseName,
    bool updateStatistics
)
public:
void DetachDatabase(
    String^ databaseName, 
    bool updateStatistics
)
member DetachDatabase : 
        databaseName:string * 
        updateStatistics:bool -> unit
public function DetachDatabase(
    databaseName : String, 
    updateStatistics : boolean
)

매개 변수

  • databaseName
    유형: System.String
    A String value that specifies the name of the database to be detached.
  • updateStatistics
    유형: System.Boolean
    A Boolean value that specifies whether to update the statistics for the database before detaching it.If True, statistics are updated.If False, statistics are not updated.

주의

The data and transaction log files of a database can be detached and then reattached to the same or another instance of 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.

Visual 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)

PowerShell

$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)

참고 항목

참조

Server 클래스

DetachDatabase 오버로드

Microsoft.SqlServer.Management.Smo 네임스페이스

관련 자료

데이터베이스 분리 및 연결(SQL Server)

메서드 호출

서버 관리

데이터베이스 분리(일반 페이지)