Moin Moin,
ich habe ein Problem beim Kopieren einer externen Datenbank in die lokale SQLEXPRESS Instanz. Ich muss einigermaßen regelmäßig diese Datenbank kopieren, wobei dort nur die Tabellen und Schlüssel wichtig sind.
Der Aufbau ist folgender:
Quelle: Instanz des externen Servers: [Servername]\WIND
Ziel: Instanz des lokalen Servers: Tablet02\SQLEXPRESS
Name Quell- und Zieldatenbank: "Autotexte"
Ich habe es dazu mit der Transfer Klasse probiert, wobei immer folgender Fehler auftritt:
Der Code, den ich benutze ist folgender:
Der folgende Code zeigt nur, wie die ServerConnection für den Konstruktor der Server Klasse gebildet wird, falls dies wichtig ist:
Ich bin nicht ganz sicher, wo ich nach dem Fehler suchen muss. Die Datenbank exisitert auf jedenfall beim externen Server und auch genau unter diesem Pfad. Ich kann mir also nur vorstellen, dass er lokal nach diesem Pfad sucht, aber wenn ja, warum? Kann ich nur von lokal nach extern kopieren und nicht andersherum, wie ich es benötige?
Ich hoffe mir kann jemand helfen, ich bin schon am verweifeln =(
Vielen Dank
Vincent
ich habe ein Problem beim Kopieren einer externen Datenbank in die lokale SQLEXPRESS Instanz. Ich muss einigermaßen regelmäßig diese Datenbank kopieren, wobei dort nur die Tabellen und Schlüssel wichtig sind.
Der Aufbau ist folgender:
Quelle: Instanz des externen Servers: [Servername]\WIND
Ziel: Instanz des lokalen Servers: Tablet02\SQLEXPRESS
Name Quell- und Zieldatenbank: "Autotexte"
Ich habe es dazu mit der Transfer Klasse probiert, wobei immer folgender Fehler auftritt:

Der Code, den ich benutze ist folgender:
VB.NET-Quellcode
- Dim ServerRemote As New Server(ServerConnectionData.ServerConnectionRemote("Autotexte"))
- Dim ServerLocal As New Server(ServerConnectionData.ServerConnectionLocal("Autotexte"))
- Dim tmpConn As SqlConnection = ServerConnectionData.TestConnection(True)
- tmpConn.Open()
- Dim cmd As New SqlCommand("IF db_id('Autotexte') IS NOT NULL " + _
- "BEGIN " + _
- "ALTER DATABASE Autotexte SET OFFLINE WITH ROLLBACK IMMEDIATE; " + _
- "ALTER DATABASE Autotexte SET ONLINE WITH ROLLBACK IMMEDIATE; " + _
- "DROP DATABASE Autotexte; " + _
- "END", tmpConn)
- cmd.ExecuteNonQuery()
- tmpConn.Close()
- Transfer = New Transfer(ServerRemote.Databases("Autotexte"))
- Transfer.DestinationServer = ServerLocal.Name
- Transfer.DestinationDatabase = "Autotexte"
- Transfer.DestinationLoginSecure = False
- Transfer.DestinationLogin = ServerConnectionData.LogInName
- Transfer.DestinationPassword = ServerConnectionData.LocalServerPassword
- Transfer.CreateTargetDatabase = True
- Transfer.CopyAllObjects = False
- Transfer.CopyAllTables = True
- Transfer.Options.WithDependencies = True
- Transfer.Options.DriAllKeys = True
- Transfer.CopySchema = True
- Transfer.CopyData = True
- Try
- Transfer.TransferData()
- Catch ex As Exception
- MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Warning)
- End Try
- MessageBox.Show("Die Übertragung wurde beendet.")
Der folgende Code zeigt nur, wie die ServerConnection für den Konstruktor der Server Klasse gebildet wird, falls dies wichtig ist:
VB.NET-Quellcode
- Friend Shared ReadOnly Property ServerConnectionLocal() As ServerConnection
- Get
- Dim _ServerConnectionLocal As New ServerConnection
- _ServerConnectionLocal.LoginSecure = False
- _ServerConnectionLocal.Login = _LogInName
- _ServerConnectionLocal.Password = _LocalServerPassword
- _ServerConnectionLocal.ServerInstance = System.Environment.MachineName + "\SQLEXPRESS"
- Return _ServerConnectionLocal
- End Get
- End Property
- Friend Shared ReadOnly Property ServerConnectionRemote() As ServerConnection
- Get
- Dim _ServerConnectionRemote As New ServerConnection
- _ServerConnectionRemote.LoginSecure = False
- _ServerConnectionRemote.Login = _LogInName
- _ServerConnectionRemote.Password = _RemoteServerPassword
- _ServerConnectionRemote.ServerInstance = _RemoteServerName + "\" + _RemoteServerInstance
- Return _ServerConnectionRemote
- End Get
- End Property
Ich bin nicht ganz sicher, wo ich nach dem Fehler suchen muss. Die Datenbank exisitert auf jedenfall beim externen Server und auch genau unter diesem Pfad. Ich kann mir also nur vorstellen, dass er lokal nach diesem Pfad sucht, aber wenn ja, warum? Kann ich nur von lokal nach extern kopieren und nicht andersherum, wie ich es benötige?
Ich hoffe mir kann jemand helfen, ich bin schon am verweifeln =(
Vielen Dank
Vincent
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Apollo3zehn“ ()