DetachDatabase Método (String, Boolean, Boolean)
Separa la base de datos especificada de la instancia de SQL Server con la opción de actualizar las estadísticas antes de que se separe la base de datos.
Espacio de nombres: Microsoft.SqlServer.Management.Smo
Ensamblado: Microsoft.SqlServer.Smo (en Microsoft.SqlServer.Smo.dll)
Sintaxis
'Declaración
Public Sub DetachDatabase ( _
databaseName As String, _
updateStatistics As Boolean, _
removeFulltextIndexFile As Boolean _
)
'Uso
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
)
Parámetros
- databaseName
Tipo: System. . :: . .String
Valor String que especifica el nombre de la base de datos que se debe separar.
- updateStatistics
Tipo: System. . :: . .Boolean
Valor Boolean que especifica si se deben actualizar las estadísticas para la base de datos antes de separarla.
Si es True, las estadísticas se actualizan.
Si es False, las estadísticas no se actualizan.
- removeFulltextIndexFile
Tipo: System. . :: . .Boolean
Valor Boolean que especifica si se debe quitar un archivo de índice de texto completo antes de separar la base de datos.
Si es True, se quita el archivo de índice de texto completo.
Si es False, no se quita el archivo de índice de texto completo.
Comentarios
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.
Ejemplos
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)