我公司有很多分支机构,每个分支机构都有一个数据库服务器。有些拥有 SQL Server 2005,有些拥有 SQL Server 2008。所有这些服务器的架构都是相同的。
每当我想做诸如添加列之类的 DDL 时,我要么通过一个接一个地连接到每个服务器,要么通过一个批处理文件使用 OSQL 运行 DDL 脚本。
是否有内置工具可以在多台服务器上同时执行 DDL?第三方工具呢?(最好是免费的)
我公司有很多分支机构,每个分支机构都有一个数据库服务器。有些拥有 SQL Server 2005,有些拥有 SQL Server 2008。所有这些服务器的架构都是相同的。
每当我想做诸如添加列之类的 DDL 时,我要么通过一个接一个地连接到每个服务器,要么通过一个批处理文件使用 OSQL 运行 DDL 脚本。
是否有内置工具可以在多台服务器上同时执行 DDL?第三方工具呢?(最好是免费的)
一种方法:
在 Management Studio 2008 R2 中,您可以将服务器添加到称为注册服务器的组中。我有 prod、dev、Prod-SQL2000 等组。您可以通过查看 - 注册服务器开始此操作,然后一一添加(您可以通过导出它们与同事共享)
然后,这将允许您单击其中一个组(例如 Prod),然后选择 New Query.....Management Studio 将连接到该组中的所有 SQL Server,您可以在所有这些上发出查询在那个组。我个人会进行只读操作,因为同时更改多个服务器风险更大。
Atlantis Interactive 创建的名为 SQL Anywhere 的工具允许您连接到多个实例并针对所有实例执行代码。
在这里找到:http: //www.atlantis-interactive.co.uk/
这个是免费的。他还有一些其他工具,但我最近才开始使用 SQL Anywhere。它比 SSMS 轻得多,并且执行一些很酷的审计。
对于 SQL 2008 及更高版本,您可以使用
CMS
(中央管理服务器)。您甚至可以在其中注册 SQL 2000 和 SQL 2005 DB。在 SQL 2008 系统上的 SSMS 中,单击View>Registered Servers
。然后在 Registered Servers 窗口中,展开 Database Engine 以查看 Central Management Server 文件夹。这是一个入门链接,可以阅读更多内容。在运行查询时,请注意不同版本的 SQL 的语法差异。