2017-07-27 11 views
1

J'ai une sauvegarde de ma base de données. Après l'avoir modifié dans mon programme, c'est un nouveau fichier newDb.bak (sur mon PC).Créer une base de données à partir du fichier de sauvegarde en utilisant C# sur le serveur SQL distant

Comment puis-je restaurer cette nouvelle base de données sur le serveur SQL distant, si j'ai la chaîne de connexion (je connais ip, login et mot de passe)? Principalement, je dois le faire uniquement en utilisant C# (pas le SQL Server Management Studio).

Répondre

2

Malheureusement il n'y a pas de façon directe pour restaurer la base de données à distance à partir du fichier de sauvegarde local. Mais la solution alternative consiste à créer un emplacement partagé dans certains endroits où (le côté local ou côté serveur n'est pas important) auxquels le client et le serveur ont accès. (Mise à jour:. Aussi, assurez-vous que le serveur SQL qui effectuera la restauration dispose d'autorisations sur le répertoire que vous copiez la sauvegarde - @KSib) Restaurez ensuite la base de données à partir du fichier:

  1. Copiez newDb.bak à \\serverip\$sharedfolder\newDb.bak sur le serveur .
  2. RESTORE DATABASE YOURDB FROM DISK = N'\\serverip\$sharedfolder\newDb.bak';

si vous voulez que je peux partager le code source de base de données restauration dans C#.

Mise à jour: Une autre solution est de créer une table qui contient la colonne varbinary, insérer le contenu du fichier de sauvegarde local par SqlCommand ou SqlBulkCopy à exporter ensuite le contenu du fichier à certains où dans votre serveur en bcp comme cela :

BCP "SELECT FileContent FROM createdTable WHERE ID = 1000" queryout "C:\newDB.bak" -T

Ensuite, vous pouvez exécuter la commande restore facilement!

Vous pouvez également créer un côté serveur StoredProcedure contenant une transaction pour obtenir le contenu du fichier en tant que paramètre d'entrée et effectuer toutes les commandes en une seule transaction.

J'espère être utile pour vous :).

+0

> il n'y a pas de voie directe Oooh merde. – KamikyIT

+0

Assurez-vous également que le serveur SQL qui effectuera la restauration dispose des autorisations sur le répertoire dans lequel vous copiez la sauvegarde. – KSib

+0

@KamikyIT J'ai trouvé une nouvelle méthode et mettre à jour mon article. Faites-moi savoir si n'est pas clair :) –