使用 SQL Server 2005。我们有一个主数据库,它会不时创建新视图,有时一天会创建几次。
我们有多个具有相同表结构的客户数据库。我会链接以使我们客户的数据库视图与我们的主人同步。
目前,我们使用 management studio 从 master 生成一个 SQL 脚本,其中包含我们所有的视图(它们都以 ! 开头)。然后删除所有以 ! 开头的当前视图 在客户的数据库上并在每个数据库上运行脚本。
我希望能够运行一个脚本,该脚本会删除所有以 ! 并从 master 导入所有以 ! 开头的视图。
我还希望不必在每次创建或更新视图时都生成新脚本。
也许这用 sql 脚本是不可能的?
*编辑 - 第一部分完成
感谢@Szymon 脚本的初始部分运行良好,不得不对其进行一些修改以适应 sql2005 和一些在其中有空格的视图
declare @sql as nvarchar(max)
set @sql = N''
select @sql = @sql + 'DROP VIEW "' + name + '";' from sys.views where name like '!%'
exec (@sql)
我已经尝试过,但我无法弄清楚第二部分,确保它返回一些(不是全部)带有一些值的视图名称,但我不确定从那里去哪里。