2016-04-15 10 views
0

Erstellen habe ich eine Reihe von Daten, die ich täglich in eine Datenbank eingefügt werden soll, eine neue Tabelle einen einfachen historischen Überblick jeden Tag oder jede Woche zu schaffen haben.eine neue Tabelle im gleichen Stil täglich/wöchentlich mssql

Wie kann ich das erreichen? Soll ich es in Code oder in der Datenbank selbst tun?

+0

bitte einige Beispieldaten und erwartete Ausgabe – TheGameiswar

+0

Erwartung auf täglicher Basis zu einem bestimmten Zeitpunkt hinzufügen? oder wann immer Sie brauchen, dass nur die Daten in die neue Tabelle verschoben werden müssen? – Arulkumar

+0

Sie können dies erreichen, indem die [SQL Jobs] (http://stackoverflow.com/questions/5471080/how-to-schedule-a-job-for-sql-query-to-run-daily) – Arulkumar

Antwort

0

Betrachten Sie MySourceTable ist Ihre tatsächliche Tabelle, von dort möchten Sie die Daten auf täglicher Basis verschieben, müssen Sie einen SQL-Job erstellen und verwenden Sie die unten SP.

So werden Sie täglich auf Basis Tabelle mit dem Präfix Namen bekommen Sie. Zum Testen gebe ich hier MyTest_ als Präfix, so dass die heutige Tabelle als MyTest_2016_04_15 kommen wird.

Probe Stored Procedure:

CREATE PROCEDURE dbo.pub_DailyBasisDataMove 
AS 
BEGIN 

    DECLARE @LogDate VARCHAR(20); 
    SET @LogDate = REPLACE(CONVERT(VARCHAR(12), GETDATE(), 111), '/', '_'); 
    -- PRINT @LogDate 

    DECLARE @ExecuteSql AS NVARCHAR (MAX) = ''; 
    SET @ExecuteSql = @ExecuteSql + N'SELECT * INTO MyTest_' + @LogDate + ' FROM dbo.MySourceTable' 
    --PRINT @ExecuteSql 

    EXEC sp_executesql @ExecuteSql 

END 

Hinweis: Wenn Sie den Job mehr als einmal am Tag ausgeführt werden soll, müssen Sie für den Tag der bestehenden Tabelle löschen und die neue erstellen.

In gleicher Weise müssen Sie wöchentlich und separaten JOB ein mehr SP erstellen und diese in dem Präfix Inhalt innerhalb des SP zu behandeln.

Verwandte Themen