none
Task - Tägliche Sicherungskopie einer -einzelnen- Tabelle RRS feed

  • Frage

  • Hallo,

    ich möchte eine einzelne Tabelle mit Logdaten täglich über einen Wartungstask sichern.
    Die gesicherte Tabelle soll dabei als Namen das Tagesdatum erhalten.

    Folgendes habe ich bereits ausprobiert, erhalte aber eine Fehlermeldung bezüglich der Variable:

    DECLARE @SichDat DATETIME
    SET @SichDat = GETDATE()
    select * into @SichDat from TLOG

    Darf der Name der Tabelle nicht über eine Variable deklariert werden?

    Gruss
    Pat

    Donnerstag, 18. Juli 2013 08:02

Antworten

  • Darf der Name der Tabelle nicht über eine Variable deklariert werden?

    Hallo Pat,

    Nein, darf man nicht. Du müsstest hierfür dynamisches SQL verwenden, sprich das SQL Statement als String aufbauen und per sp_executesql ausführen lassen. Beispiel:

    DECLARE @tbl nvarchar(20);
    DECLARE @sql nvarchar(1000);
    
    -- Backuptabelle anlegen
    SET @tbl = N'Backup' + CONVERT(varchar(20), GETDATE(), 112);
    SET @sql = N'SELECT * INTO ' + @tbl + N' FROM sys.objects';
    EXEC sp_executesql @sql;
    
    -- Nachkontrolle
    SET @sql = N'SELECT * FROM ' + @tbl
    EXEC sp_executesql @sql;
    


    Olaf Helper

    Blog Xing

    • Als Antwort markiert RnaPi Freitag, 19. Juli 2013 12:52
    Donnerstag, 18. Juli 2013 08:18

Alle Antworten