【问题标题】:Execute stored procedure by using link server使用链接服务器执行存储过程
【发布时间】:2018-04-19 18:34:31
【问题描述】:

我遇到了一个问题。我有这 3 台服务器:

1 Server1
2 Server2
3 Server3

我想在 Server1 上创建一个作业,它将以 html 格式发送电子邮件,包括所有三台服务器的驱动器空间 xp_fixeddrives

请帮助我 - 实现这一目标的最佳方案是什么?

【问题讨论】:

  • 您需要帮助的具体是哪一部分?只是跨链接服务器执行存储过程?设置dbmail?创建链接服务器?
  • 先生,我在服务器 1,2 和 3 上创建了 3 个存储过程。它们会将数据转储到各自的表中。但我无法通过链接服务器运行该存储过程。
  • 服务器是否正确设置为链接服务器?执行基本存储过程的用户是否具有必要的权限?是否所有链接的服务器都具有适当的权限?
  • 链接设置是否正确?您可以登录到服务器 1 并运行查询以执行服务器 2 存储过程吗?
  • 是的,先生用户有 sa 级别的权限来测试这个场景。例如,我也无法通过链接服务器运行此选择查询:exec [link server name].[database name].[scehma name].xp_fixeddrives

标签: sql stored-procedures sql-server-2012 sql-server-linux


【解决方案1】:

如果您在 server1 中为 server2 和 server3 链接了服务器,那么您可以像下面这样执行

EXEC master.dbo.xp_fixeddrives
EXEC Server2.master.dbo.xp_fixeddrives
EXEC Server3.master.dbo.xp_fixeddrives

最好的方法是从 SQL 作业运行 powershell 脚本。请检查以下示例 https://gallery.technet.microsoft.com/scriptcenter/PowerShell-and-Notification-50630dc9

【讨论】:

  • 谢谢先生,它已经开始工作了,但我需要将上述所有 3 个查询结果插入 #temp 从中我可以得到:插入 #temp exec master.dbo.xp_fixeddrives...等
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
相关资源
最近更新 更多