SQL脚本使用条件从另一个数据库导入所有视图

时间:2013-10-30 20:13:57

标签: sql sql-server sql-server-2005 view

使用SQL Server 2005.我们有一个主数据库,可以不时创建新视图,有时一天创建几次。

我们有多个具有相同表结构的客户数据库。我链接以保持客户的数据库视图与我们的主人保持同步。

目前,我们使用管理工作室从主服务器生成一个带有我们所有视图的SQL脚本(它们都以!开头!)。然后删除以!开头的所有当前视图!在客户的数据库上并在每个数据库上运行脚本。

我希望能够只运行一个脚本,它会删除以!开头的所有视图!并从!。

开始导入所有主视图

我还希望每次创建或更新视图时都不必生成新脚本。

也许用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)

我已经尝试了,我无法想出第二部分,确定它返回一些(不是所有)视图名称带有一些值,但我不知道从那里去哪里。

0 个答案:

没有答案