【问题标题】:How to execute sql server query from another machine using bat file?如何使用 bat 文件从另一台机器执行 sql server 查询?
【发布时间】:2014-04-25 07:43:05
【问题描述】:

我有 2 台服务器。

Server1 包含已安装的 SQL 服务器数据库。 Server2 是没有 SQL 数据库的普通 windows 服务器。

我想在 Server1 上写一个 bat 文件。它必须连接到 Server1(通过传递连接字符串等),执行查询并将输出返回给 Server1。谁能帮忙??

不允许在服务器上使用现成的工具/exe,例如 PsExec。

使用 VB/C# 脚本可以是另一种方式,但我已将其设为 Executable 并放置在应用程序服务器上。它也可能被 IT 管理员拒绝。

我正在寻找可以放在bat文件中的dos命令集,我将把它放在应用服务器中。

请建议/解释任何其他方法,例如将 bat 文件放在数据库服务器上并从应用程序服务器调用它。

大家好,

感谢您的帮助。 我可以使用在应用服务器上运行的 bat 连接以在数据库服务器上执行 sql 查询。 为此使用了“sqlcmd”。

但现在的障碍是 IT 管理员要求使用 ODBC 连接而不是“sqlcmd”。

你能指导我如何在bat文件中使用ODBC连接并连接到远程数据库吗?

【问题讨论】:

  • 是否允许使用 sqlcmd 实用程序?
  • 第三个 tect 块有点混乱,你的意思是你想要 bat 文件并在服务器 2 上输出?
  • 我现在已经在 SQL Server (server1) 本身上编写了一个 bat 文件。它包含 sqlcmd 实用程序。它执行查询并将输出保存在 Server1 本身中。现在我的问题是从应用服务器(server2)调用这个bat文件。此 server2 不包含 sqlcmd。
  • VBScript 与 Windows 打包在一起。与 .NET Framework 和 PowerShell 一样(PowerShell 自 Server 2008R2/Win7 起已默认包含,并且是通过 Microsoft Update 提供的标准 Windows 组件)。恕我直言,您的 IT 管理员在这里有点不合理。

标签: sql sql-server windows batch-file


【解决方案1】:

从这段代码开始,以确定您可以连接。将其粘贴到 .txt 文件中并重命名为 .vbs:

您需要在 odbc admin (odbcad32.exe) 中创建一个名为 MyDSN 的 DSN(数据源名称)以连接到您的 SQL Server。有一种方法可以做到这一点,而无需创建 DSN,但我现在忘记了。

Dim oCon

Call Main


Private Sub Main()

'----------------------------------------------------------------------
' Create ADO objects
Set oCon = CreateObject("ADODB.Connection")


oCon.ConnectionString = "DSN=MyDSN;Uid=scratch;Pwd=;"
oCon.Open


If oCon.State <> 1 Then
Call MsgBox("Could not connect to the database")
Exit Sub
Else
Call MsgBox("Connected to the database")
End If  
'----------------------------------------------------------------------
End Sub

一旦你完成了这项工作,我可以提供进一步的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-13
    • 2017-09-18
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多