在我的SQL数据库中,我有一个视图,其中包含我的报告内容的特定数据。出于存档目的,我想自动将该视图另存为表格。我用
创建了表格SELECT * INTO t_ReportArchive FROM v_View
(Table = t_ReportArchive; View = v_View)
所以桌子很好。视图和表的列不会随时更改,只会更新数据。我是SQL新手,我的问题是:是否可以运行脚本或其他东西来自动使用该视图中的新数据更新表?像Update t_ReportArchive from v_View
?
答案 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
就我个人而言,我不喜欢触发器,因为很难跟踪正在发生的事情。同样适用于预定的工作。
每当发生变化时,我更愿意从我的代码中调用更新。