다음을 통해 공유


DetachDatabase 메서드 (String, Boolean, Boolean)

데이터베이스가 분리되기 전에 통계를 업데이트하는 옵션을 사용하여 SQL Server 인스턴스에서 지정한 데이터베이스를 분리합니다.

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

구문

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

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

매개 변수

  • updateStatistics
    유형: System. . :: . .Boolean
    분리하기 전에 데이터베이스의 통계를 업데이트할지 여부를 지정하는 Boolean 값입니다.
    True이면 통계가 업데이트됩니다.
    False이면 통계가 업데이트되지 않습니다.
  • removeFulltextIndexFile
    유형: System. . :: . .Boolean
    데이터베이스를 분리하기 전에 전체 텍스트 인덱스 파일을 제거할지 여부를 지정하는 Boolean 값입니다.
    True이면 전체 텍스트 인덱스 파일이 제거됩니다.
    False이면 전체 텍스트 인덱스 파일이 제거되지 않습니다.

주의

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("AdventureWorks2008R2").Owner

'Detach the AdventureWorks2008R2 database.
srv.DetachDatabase("AdventureWorks2008R2", 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\AdventureWorks2008R2_Data.mdf"
Logstr = "C:\Program Files\Microsoft SQL Server"
Logstr = datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_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("AdventureWorks2008R2", 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("AdventureWorks2008R2")
$owner = $db.Owner
$srv.DetachDatabase("AdventureWorks2008R2", $FALSE, $FALSE)
$datastr = "C:\Program Files\Microsoft SQL Server"
$datastr = $datastr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_Data.mdf"
$logstr = "C:\Program Files\Microsoft SQL Server"
$logstr = $logstr + "\MSSQL10_50\MSSQL\Data\AdventureWorks2008R2_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("AdventureWorks2008R2", $sc, $owner, [Microsoft.SqlServer.Management.Smo.AttachOptions]::None)