2016-04-15 66 views
0

我有一组数据,我想每天插入到数据库中,每天或每周都创建一个新表格,以获得简单的历史概览。以相同样式每天/每周创建一个新表格每周/每周mssql

我该如何做到这一点?我应该在代码中还是在数据库本身中执行?

+0

请添加一些示例数据和预期的输出 – TheGameiswar

+0

在特定的时间每天都会期望吗?或者当你需要时,只有数据需要移动到新表中? – Arulkumar

+0

您可以通过[SQL Jobs]实现此目的(http://stackoverflow.com/questions/5471080/how-to-schedule-a-job-for-sql-query-to-run-daily) – Arulkumar

回答

0

考虑一下MySourceTable是你的实际表格,从那里你想每天移动数据,你需要创建一个SQL Job并使用下面的SP。

因此,您将得到一个含有您提供的前缀名称的基于日表的表格。为了测试,我在这里给出MyTest_作为前缀,所以今天的表格将作为MyTest_2016_04_15来。

示例存储过程:

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 

注意:如果你想运行的工作更比一天一次,你需要删除现有表的一天,创造新的。

以同样的方式,您需要为每周创建一个SP并分开JOB,并在SP内的前缀内容中处理相同的内容。