Udostępnij za pośrednictwem


Transfer danych

Transfer Klasa jest klasą narzędzia, która udostępnia narzędzia do transferowania obiektów i danych.

Objects in the database schema are transferred by executing a generated script on the target server.Table data is transferred with a dynamically created DTS package.

Transfer Obiekt zawiera wszystkie funkcje Transfer obiektów DMO i dodatkowe SQL Server funkcji.Jednakże w SMO Transfer obiekt używa DTS transfer danych.Ponadto metody i właściwości, które są używane do wykonywania transferów danych znajdują się na Transfer obiekt zamiast Database obiektu.Przenoszenie funkcje wystąpienie klasy do klas narzędzie jest zgodne z jaśniejsze modelu obiektów, ponieważ kod dla określonych zadań jest ładowany tylko wtedy, gdy jest to wymagane.

Transfer Obiekt nie obsługuje przesyłanie danych do miejsce docelowe bazy danych, który ma CompatibilityLevel mniej niż wersja wystąpienie SQL Server.

W szczególności

  • SQL Server 2005i SQL Server 2008 nie obsługują transfer danych do bazy danych z CompatibilityLevel Właściwość Version80.

  • SQL Server 2005i SQL Server 2008 nie obsługują transfer danych do bazy danych z systemem SQL Server w wersja 7.0.

Przykład

Aby używać dostarczonych przykładów kodu źródłowego, należy wybrać środowisko, szablon oraz język programowania, które będą używane do tworzenia aplikacji. Aby uzyskać więcej informacji, zobacz temat „Jak utworzyć projekt SMO języka Visual Basic w programie Visual Studio .NET” lub „Jak utworzyć projekt SMO języka Visual C# w programie Visual Studio .NET” w dokumentacji SQL Server — książki online.

Transferowanie schematu i danych z jednej bazy danych do innego języka Visual Basic

Poniższy przykład kodu pokazuje sposób transferu schematu i danych z jednej bazy danych do innej za pomocą Transfer obiektu.

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Create a new database that is to be destination database.
Dim dbCopy As Database
dbCopy = New Database(srv, "AdventureWorks2008R2Copy")
dbCopy.Create()
'Define a Transfer object and set the required options and properties.
Dim xfr As Transfer
xfr = New Transfer(db)
xfr.CopyAllTables = True
xfr.Options.WithDependencies = True
xfr.Options.ContinueScriptingOnError = True
xfr.DestinationDatabase = "AdventureWorks2008R2Copy"
xfr.DestinationServer = srv.Name
xfr.DestinationLoginSecure = True
xfr.CopySchema = True
'Script the transfer. Alternatively perform immediate data transfer with TransferData method.
xfr.ScriptTransfer()

Transferowanie schematu i danych z jednej bazy danych do innego języka Visual C#

Poniższy przykład kodu pokazuje sposób transferu schematu i danych z jednej bazy danych do innej za pomocą Transfer obiektu.

{
            Server srv;
            srv = new Server();
            //Reference the AdventureWorks2008R2 database 
            Database db;
            db = srv.Databases["AdventureWorks2008R2"];
            //Create a new database that is to be destination database. 
            Database dbCopy;
            dbCopy = new Database(srv, "AdventureWorks2008R2Copy");
            dbCopy.Create();
            //Define a Transfer object and set the required options and properties. 
            Transfer xfr;
            xfr = new Transfer(db);
            xfr.CopyAllTables = true;
            xfr.Options.WithDependencies = true;
            xfr.Options.ContinueScriptingOnError = true;
            xfr.DestinationDatabase = "AdventureWorks2008R2Copy";
            xfr.DestinationServer = srv.Name;
            xfr.DestinationLoginSecure = true;
            xfr.CopySchema = true;
            //Script the transfer. Alternatively perform immediate data transfer 
            // with TransferData method. 
            xfr.ScriptTransfer();
        } 

Transferowanie schematu i danych z jednej bazy danych do innego w PowerShell

Poniższy przykład kodu pokazuje sposób transferu schematu i danych z jednej bazy danych do innej za pomocą Transfer obiektu.

#Connect to the local, default instance of SQL Server.

#Get a server object which corresponds to the default instance
$srv = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Server

#Reference the AdventureWorks2008R2 database.
$db = $srv.Databases["AdventureWorks2008R2"]

#Create a database to hold the copy of AdventureWorks
$dbCopy = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Database -argumentlist $srv, "AdventureWorksCopy"
$dbCopy.Create()

#Define a Transfer object and set the required options and properties.
$xfr = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Transfer -argumentlist $db

#Set this objects properties
$xfr.CopyAllTables = $true
$xfr.Options.WithDependencies = $true
$xfr.Options.ContinueScriptingOnError = $true
$xfr.DestinationDatabase = "AdventureWorksCopy"
$xfr.DestinationServer = $srv.Name
$xfr.DestinationLoginSecure = $true
$xfr.CopySchema = $true
"Scripting Data Transfer"
#Script the transfer. Alternatively perform immediate data transfer with TransferData method.
$xfr.ScriptTransfer()