bcp从远程数据库到本地驱动器

时间:2019-01-27 21:55:39

标签: sql-server

我有两个数据库服务器:LIVEDB。两者都有SQL Server 2017。

如果我在数据库中打开SMSS,则可以使用SQL Server身份验证登录到LIVE数据库。

我的目标是从BCP运行DB,以从LIVE查询到DB上的文件。

我正在运行的命令是:

BCP "Select * from <<DATABASE.dbo.TABLE>>" queryout "D:\data\test.csv" -t^ -r '0x0A' 
    -U <<USER>> -P <<PASSWORD>> -S "LIVE\MSSQLSERVER" -c -C65001

问题是由于某种原因我无法成功连接:

  

SQLState = 08001,NativeError = 87
  错误= [Microsoft] [用于SQL Server的ODBC驱动程序13] SQL Server网络接口:
  连接字符串无效[87]。
  SQLState = 08001,NativeError = 87
  错误= [Microsoft] [SQL Server的ODBC驱动程序13]建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。有关更多信息,请参见SQL Server联机丛书。

     

SQLState = S1T00,NativeError = 0
  错误= [Microsoft] [用于SQL Server的ODBC驱动程序13]登录超时已过期

我想念什么吗?如果在DB上,我尝试使用SMSS连接到LIVE,可以,但是bcp导致找不到错误?

谢谢!

1 个答案:

答案 0 :(得分:1)

当您在此处尝试连接到MSSQLSERVER时,我看到您使用LIVE作为实例名称:

BCP "Select * from <<DATABASE.dbo.TABLE>>" queryout "D:\data\test.csv" -t^ -r '0x0A' 
    -U <<USER>> -P <<PASSWORD>> -S "LIVE\MSSQLSERVER" -c -C65001
                                   ******************  

通常,MSSQLSERVER未命名默认实例的内部“实例”名称,并且您连接到这样的默认实例而未提供 -例如仅使用LIVE而不是LIVE\MSSQLSERVER

尝试以下BCP命令:

BCP "Select * from <<DATABASE.dbo.TABLE>>" queryout "D:\data\test.csv" -t^ -r '0x0A' 
    -U <<USER>> -P <<PASSWORD>> -S "LIVE" -c -C65001