我有一个三个存储过程的列表,需要每天在许多单独的SQL数据库上运行。每个数据库的命名都不同,但每个数据库上的存储过程都是相同的。
除了基本查询之外,我对其他任何知识都非常有限,但我想我可以在我设置为Master的数据库上有一个SQL Server Agent作业。然后我将该作业推送到其他数据库,一旦我将其配置为目标。我的问题是,在考虑这个问题时,数据库名称是不同的,在SQL Server代理向导中,我只能将数据库设置为当前在主实例上的数据库。
执行循环服务器以运行存储过程的最佳方法是什么?
答案 0 :(得分:1)
您正在寻找的是链接服务器。它们允许链接服务器,以便您可以将对象从一个服务器调用到另一个服务器。它们很容易设置。在您的情况下,您需要在主服务器上创建3个链接服务器,这些服务器将用于计划作业。链接服务器将允许主服务器链接到列出的服务器。 Here are tutorials of how you can create a linked-server.
一旦您创建了链接服务器,您只需创建一个将执行所有3个sprocs的作业,如下所示:
EXEC [server1].[database].[schema].[sp_name];
EXEC [server2].[database].[schema].[sp_name];
EXEC [server3].[database].[schema].[sp_name];