0

在 sql server 2012 中编写此代码时出现此错误:

EXEC xp_cmdshell 'bcp "select [ProductID],[ProductName],[UnitPrice] from Northwind.dbo.Products" queryout "d:\bcptest2.txt" -T  -c -t, '

错误 = [Microsoft][SQL Server Native Client 11.0]在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

如何解决?

4

1 回答 1

3

您所做的查询正常工作。但是,您尚未在 SQL Server 中启用 TCP/IP。这可以通过执行以下操作来完成:

  1. 打开“SQL Server 配置管理器”
  2. 选择“SQL 本机客户端配置”
  3. 在右侧窗格中,右键单击 TCP/IP 并选择启用
  4. 重新启动 SQL Server 服务

您的查询现在应该可以正常工作了。

有关详细信息,请参阅以下 msdn 文档。为 SQL Server 启用 TCP/IP 网络协议

如果这不能解决问题,请告诉我,因为可能需要其他配置。

编辑:

您可以尝试从命令行运行以下命令吗(即 cmd.exe):

 bcp "select [ProductID],[ProductName],[UnitPrice] from Northwind.dbo.Products" queryout "d:\bcptest2.txt" -T  -c -t

让我知道这是否适合您(这样我们可以查看是 BCP 还是 xp_cmdshell 导致了问题)。您是否还可以查看以下内容:

  1. SQL 服务器配置为允许远程连接
    • 在 SSMS 中,右键单击服务器名称>属性>连接并勾选“允许远程连接”框
  2. 您的用户是系统管理员吗?
  3. 您的 SQL 服务器位于何处?(即它是本地安装还是在您网络上的服务器上?)
  4. 它也是SQL的一个实例吗?
于 2013-02-07T10:50:34.843 回答