【问题标题】:How to write using BCP to a remote SQL Server?如何使用 BCP 写入远程 SQL Server?
【发布时间】:2017-07-28 01:42:48
【问题描述】:

我有一个远程 SQL Server,其主机名用于连接。

BCP 建议使用

bcp DBName.dbo.tablename in C:\test\yourfile.txt -c -T -t

但是,当我尝试此操作时,它不会连接到 DBName,因为它不是有效的别名。我收到本机错误 2。

如何运行 BCP,但指定要连接的 Internet/网络地址,而不是 MSSQL 服务器名称?

【问题讨论】:

    标签: sql-server command-line-interface bcp bulk-load


    【解决方案1】:

    如何运行 BCP,但指定要连接的 Internet/网络地址,而不是 MSSQL 服务器名称?

    您可以指定 IP 地址(此处仅为 127.0.0.1)而不是服务器名称。

    bcp DBName.dbo.tablename in "C:\test\yourfile.txt" -c -T -t -S"127.0.0.1\instance"

    如果你真的只想去IP\port,那么使用逗号分隔的IP地址和端口

    bcp DBName.dbo.tablename in "C:\test\yourfile.txt" -c -T -t -S"127.0.0.1,60905"

    当然,在这种情况下,您需要知道实例正在使用的端口,并且您的实例应该设置为使用固定端口

    【讨论】:

    • 问题:输出文件“yourfile.txt”是否转到标志 -S 标识的服务器上的 C: 驱动器?或在运行 bcp 的服务器上?所以如果我运行的是database.db.myhost.com,C:\ 在我的机器上吗?还是在database.db.myhost.com 上?谢谢
    • @arcee123。输出文件保存在运行 bcp 的服务器上。事实上,不可能保存在标志 -S 标识的服务器上,因为授予该服务器的唯一访问权限是数据库访问权限,而不是对 windows(或其他)环境的访问权限,
    【解决方案2】:

    DBName 是数据库的名称,您需要使用-S 选项提供服务器(或服务器\实例)名称。

    来自MSDN

    -S server_name [\instance_name] 指定要连接的 SQL Server 实例。如果未指定服务器,则 bcp 实用程序 连接到本地计算机上的默认 SQL Server 实例。 从远程运行 bcp 命令时需要此选项 网络上的计算机或本地命名实例。连接到 服务器上 SQL Server 的默认实例,仅指定 server_name。 要连接到 SQL Server 的命名实例,请指定 服务器名称\实例名称。

    【讨论】:

    • OP特别说不要使用服务器的名字
    • 该服务器名称是服务器的 DNS 名称,而不是数据库名称或实例名称。我猜 OP 把事情搞混了
    • 我同意,他们更可能是指实例名称。我这种情况SERVERNAME,port 可以使用未记录的服务器规范
    猜你喜欢
    • 1970-01-01
    • 2015-12-05
    • 2016-10-29
    • 2020-04-06
    • 2021-05-29
    • 2020-05-07
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多