每天/每周mssql以相同样式创建一个新表

时间:2016-04-15 08:01:55

标签: sql-server

我有一组数据,我想每天插入数据库,每天或每周创建一个新表,以便有一个简单的历史概述。

我怎样才能做到这一点?我应该在代码中还是在数据库中执行此操作?

1 个答案:

答案 0 :(得分:0)

考虑MySourceTable是您的实际表,从那里您想要每天移动数据,您需要创建一个SQL作业并使用下面的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内部的前缀内容中处理相同的内容。