2016-06-06 3 views
0

Ich muss eine SQL Server-Datenbanksicherung programmgesteuert mit C# erstellen. Diese Datenbanksicherung sollte die gesamte Datenbankkonfiguration enthalten.Wie kann ich eine SQL Server-Datenbank-Sicherung programmgesteuert mithilfe von C# oder VB.net mit ausgewählten Tabellendaten nur generieren

Hauptanforderung ist jedoch, dass in der Sicherung Tabellendaten mit der Datensatz-ID verknüpft sein sollten. Beispiel: EmployeeID ist die PK einer der Tabellen. Gleiches EmployeeID wird als FK in einer anderen Tabelle verwendet. Also muss ich eine Sicherungsdatei programmatisch mit Tabellen erstellen, die die Daten nur für bestimmte EmployeeID enthalten.

Kann jemand dabei helfen?

+2

Warum würden Sie eine Sicherung benötigen, aber die Daten filtern und nur für eine EmployeeID speichern? –

+1

SQL Server kann nur alle Daten sichern. Wenn Sie einige Daten entfernen müssen, müssen Sie sie zuerst selbst entfernen. Sichern, Wiederherstellen, Wegwerfen von Daten in der wiederhergestellten Datenbank und Sichern des Ergebnisses. –

+1

Ihre Anforderungen scheinen sich hier zu widersprechen. Eine Datenbanksicherung ist eine Sicherung der GESAMTEN Datenbank. Wenn dies nicht der Fall ist, handelt es sich nicht um eine Datenbanksicherung. Es scheint, dass Sie vielleicht nur versuchen, bestimmte Daten zu erfassen? Wenn Sie erweitern könnten, was Sie hier wirklich versuchen, können wir Ihnen vielleicht helfen. –

Antwort

0

SQL Server hat eine Lösung für jede Anforderung, die Sie haben könnten. Ihr Problem hat auch eine Lösung wie folgt:

  1. einen SQL-Skript schreiben, die einen Klon der Quelldatenbank auf derselben SQL Server-Instanz erstellen werden.

  2. Diese geklonte Datenbank sollte die Daten und Felder enthalten, die Sie benötigen, und die Daten können für die Mitarbeiter-ID X spezifisch sein. (Beispielcode unten). Diese SELECT-Anweisung wird sich TABLE SCHEMA für Sie erstellen die Quelltabelle basiert auf und wird auch INSERT bestimmte Datensätze in der Tabelle der Ziel basierend auf dem FILTER Sie gelten in WHERE Zustand.

  3. Ausgabe dieses SQL-Skript sollte eine „BAK“ Datei

  4. Nach Sicherung des Klondatenbank sein, erzeugt wird Ihr Skript sollte sofort die geklonte Datenbank löschen.

  5. Sie müssen folgende Werte in SQL-Skript konfigurieren, während Bereitstellung

ein. Quelldatenbank - Eine Datenbank, für die eine Sicherung erstellt werden muss

b. Mitarbeiter-ID - Dies ist eine ID des Unternehmens, für das Daten exportiert werden müssen. Der Standardwert hierfür kann X sein.

c. Sicherungsdateipfad - Ein Pfad auf dem Server, auf dem sich die Datenbanksicherung befinden kann.

USE master 
    IF EXISTS(select * from sys.databases where name='Test') 
    DROP DATABASE Test 

    CREATE DATABASE Test 


    IF EXISTS(select * from sys.databases where name='Test') 
    BEGIN 

     USE Test 

     SELECT * 
     INTO [Destination_Table1] 
     FROM [SourceDatabase].[dbo].[Source_Table1] 
     WHERE [SourceDatabase].[dbo].[Source_Table1].[EmployeeID] = 78 

     BACKUP DATABASE Test 
     TO DISK = 'D:\SSIS\DB\Test.Bak' 
     WITH FORMAT, 
     MEDIANAME = 'Z_SQLServerBackups', 
     NAME = 'Test'; 

     IF EXISTS(select * from sys.databases where name='Test') 
     DROP DATABASE Test 

    END 

Lassen Sie mich wissen, wenn Sie weitere Hilfe benötigen.

Verwandte Themen