每次插入完成时删除/创建视图

时间:2015-07-06 18:49:14

标签: sql-server-2008 triggers views

每次表格插入记录时,是否可能删除视图,然后使用表格中的数据重新创建视图。例如,我的表结构就像这样

Create Table NeedView (
  Databasename varchar(100)
  ,DateAdded datetime
)

该表中的信息只是一个完全限定的数据库名称,因此servername.database.dbo.table我的想法是应用一个触发器,每次将记录插入此表时,首先删除视图(它将是名为dbo.ViewMaster,然后使用快速select

重新创建
Select fullname, phone

来自数据库中的每个表。这可以通过触发器实现吗?

修改

我现在只需要弄清楚如何循环表来为表中的每个数据库名创建一个视图......我已经准备好了这个粗略的语法,除了实际迭代每个数据库。有人能帮助我找到丢失的部分吗?

CREATE TRIGGER GetViewReady ON [FullOn]
FOR INSERT
AS
  IF OBJECT_ID('FullInformation', 'V') IS NOT NULL
  DROP VIEW FullInformation

  Declare @database varchar(100), @campaignID varchar(10)

  Declare C1 Cursor FOR

    Select database
    FROM [FullOn]

  Open C1

  Fetch Next FROM C1 INTO @database

  WHILE @@Fetch_Status = 0
  Begin

    'Here is where the actual iteration to create the view would go...
    'How would that statement actually need to be syntactically written?

    Fetch Next From C1 Into @database

End


GO

编辑 - 一些数据库名称为hellfire.master.dbo.hennigarhellfire.mainframe.dbo.dekalbhellfire.master.dbo.ftworth,我所遵循的语法如下:

Select fullname, phone
FROM hellfire.master.dbo.hennigar
UNION ALL
select fullname, phone
from hellfire.mainframe.dbo.dekalb
UNION ALL
select fullname, phone
from hellfire.master.dbo.ftworth

0 个答案:

没有答案