Sql server MS SQL ping外部服务器

Sql server MS SQL ping外部服务器,sql-server,Sql Server,有没有“好”的方法来检查网络主机是否已启动 使用“普通”SQL?我想到了一些特定于MS-SQL的方法 命令,或者从ping脚本获取返回值 在服务器本身上 有人对此有想法吗?我想你指的是“普通”SQL而不是“佩林”:-) 如果要查看SQL是否在主机上运行,可以尝试使用连接到(但需要在服务器上安装并运行) 您可以尝试“最佳猜测”方法,并与端口1433(默认端口SQL Server的数据库引擎)建立TCP连接。如果端口打开,则可能是SQL Server正在侦听-然后您可以尝试连接到SQL Server

有没有“好”的方法来检查网络主机是否已启动 使用“普通”SQL?我想到了一些特定于MS-SQL的方法 命令,或者从ping脚本获取返回值 在服务器本身上

有人对此有想法吗?

我想你指的是“普通”SQL而不是“佩林”:-)

如果要查看SQL是否在主机上运行,可以尝试使用连接到(但需要在服务器上安装并运行)

您可以尝试“最佳猜测”方法,并与端口1433(默认端口SQL Server的数据库引擎)建立TCP连接。如果端口打开,则可能是SQL Server正在侦听-然后您可以尝试连接到SQL Server并执行命令(如
SELECT@@VERSION
或特定于您的应用程序的命令)。这种方法的问题是:

  • SQL Server数据库引擎可以配置为使用非标准TCP端口
  • SQL Server甚至可能没有使用TCP—您必须使用命名管道进行连接(我不确定这是如何实现的)
  • 可以将某些其他服务配置为使用TCP端口1433。这并不意味着SQL Server正在侦听
  • 如果端口1433已打开并由SQL Server使用,则需要提供连接到端口1433并执行命令的凭据

基本上,最佳猜测方法只适用于您控制下的SQL Server。

有两种可能的方法可以得出您的答案: 1.您想知道SQL server是否在任意主机上运行
2.您希望使用某些查询从SQL server ping任意主机

  • 你可以用达里姆的答案。 1a。如果要从一台SQL server查询另一台SQL server,最好使用SQL server的“链接服务器”功能

  • 您可以使用存储过程执行PING,然后PING将结果作为文本行和状态代码返回


  • EXEC master.dbo.xp\u cmdshell“ping 192.168.1.1”

    问题是:为什么要这样做?我的SQL server存储指向外部FTP服务器提供的内容的链接。我希望我的服务器检查所有X分钟ftp框是否打开,如果不是,则运行更新并将相关内容标记为“temp”。不可用。这不应该在应用程序层而不是数据库层进行吗?很好,基本上内容是由基于java/jsf的web应用程序显示的。我想在应用程序中实现某种正规的反腐败类是个更好的主意?!从长远来看,这将比尝试将这些功能破解到SQL Server中灵活得多。您好,谢谢您的建议!我想问题是我需要检查FTP框,而不是sql server。thx无论如何,状态代码不是很有用-对我来说,错误时返回1,成功时返回0。但它在“TTL在传输中过期”时也返回0,因此它并不完全可靠。@Tomalak:不幸的是,这就是您必须分析结果输出的地方:-/