我有11 databases
,其中包含User Details
表,即所有员工详细信息。在那里,我有一个列“Status"(which is 1 for Active and 0 for Inactive)
。我有一个常规任务,用于为所提到的员工更新”Status
“列值0 or 1
,为此,我必须通过所有数据库然后用户表然后我必须更新。我必须为所有数据库执行相同的任务,并且它消耗了大量时间。
如果我得到一个短Query
或Procedure
,我必须运行一次,然后立即进行所有更新,这将是一个很大的帮助。
答案 0 :(得分:0)
我看到了几个可能的选择。
您可以构建一个SSIS包来连接到每个数据库并执行必要的更新,前提是可以在数据库或某些外部源(如文本文件)中找到要更新的员工和更新内容的条件。 / p>
或者,您可以在SQL Server Management Studio中使用SQLCMD模式,然后在SQL脚本中使用CONNECT
命令切换到每个服务器和数据库,就像这样......
:CONNECT Server1
USE Database1
--put your update SQL script
:CONNECT Server2
USE Database2
--put your update SQL script
...
这些链接提供了有关使用SQLCMD模式的更多信息......
Connecting to multiple servers in a Query Window using SQLCMD
诺尔
答案 1 :(得分:0)
正如您所提到的,您有11个数据库。
问题:首先,您使用非常糟糕的数据库设计方法,
真正发生的事情:当您使用多个数据库并且需要检入每个数据库时,服务器需要一次又一次地连接到不同的数据库,与切换相比,这需要更多的时间因为连接处理而进入表格。
解决方案:在您的情况下,您只有一个选项可以在循环中连接不同的数据库,然后在循环中为每个数据库运行查询。
建议:您应该将所有数据保存在同一个数据库中,您可以使用表格中的额外列来跟踪不同实体的数据。