我有一组数据,我想每天插入数据库,每天或每周创建一个新表,以便有一个简单的历史概述。
我怎样才能做到这一点?我应该在代码中还是在数据库中执行此操作?
答案 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内部的前缀内容中处理相同的内容。