自动将视图另存为具有额外列的表

时间:2013-07-24 13:06:19

标签: sql view automation

在我的SQL数据库中,我有一个视图,其中包含我的报告内容的特定数据。出于存档目的,我想自动将该视图另存为表格。我用

创建了表格
SELECT * INTO t_ReportArchive FROM v_View
(Table = t_ReportArchive; View = v_View)

所以桌子很好。视图和表的列不会随时更改,只会更新数据。我是SQL新手,我的问题是:是否可以运行脚本或其他东西来自动使用该视图中的新数据更新表?像Update t_ReportArchive from v_View

这样的东西

3 个答案:

答案 0 :(得分:0)

您可以在作业中安排此查询,这可以使用您希望每小时,每周每周,每月的频率来完成。

请参阅以下链接

http://msdn.microsoft.com/en-us/library/ms191439.aspx

此致

Ashutosh Arya

答案 1 :(得分:0)

您正在使用的查询创建表并插入表中,因此它只能使用一次。您可以在第一次手动运行以创建表面包,然后您可以使用简单的插入,如:

insert into t_ReportArchive select * FROM v_View

或者,您可以为备份运行的每一天创建一个新表,并将日期附加到该表,如下所示:

declare @backupquery varchar(100) = 'select * into t_ReportArchive'+ REPLACE(CAST(CAST(CURRENT_TIMESTAMP AS DATE) AS VARCHAR(10)),'-','_')+ ' from v_View' 
exec (@backupquery)

答案 2 :(得分:0)

当您从表中插入/更新/删除并从那里运行SQL时,可以使用触发器运行。

http://msdn.microsoft.com/en-us/library/ms189799.aspx

就我个人而言,我不喜欢触发器,因为很难跟踪正在发生的事情。同样适用于预定的工作。

每当发生变化时,我更愿意从我的代码中调用更新。