标签: bcp

日期时间类型数据的 bcp in 导致“无效的日期/时间格式”

我熟悉 bcp 实用程序,我有一个包含日期时间数据的大表,我以多种方式 bcp 输出它:本机、字符、分隔。

然后我 bcp 到一个与原始表具有相同列/格式的截断表中,但是,我得到如下错误:

----------------
Starting copy...
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid time format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL Server Native Client 10.0]Invalid date format
SQLState = 22008, NativeError = 0
Error = [Microsoft][SQL …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server bcp

5
推荐指数
1
解决办法
2万
查看次数

如何通过批量导入导入 varbinary(max) 列?

我有一个需要批量导入的 varbinary(max) 列。我放入此列的数据是 C# 中的 byte[]。如何格式化用于批量导入的逗号分隔文件中的数据?换句话说,如何以 bcp 实用程序接受的方式从 byte[] 转换为字符串?

sql-server bcp c#

5
推荐指数
1
解决办法
1万
查看次数

运行 Sql Server BCP.exe 实用程序的最低要求

我正在与需要将数据导入远程 SQL Server (2008) 实例的客户合作。将在其中进行导入的计算机上不能安装 SQL Server。BCP.exe 实用程序可以在没有安装 SQL Server 的情况下运行吗?

谢谢你的帮助。

sql-server bcp

5
推荐指数
1
解决办法
1万
查看次数

BCP 每批导出更多行到文件(查询输出)

我正在使用 Windows 10 并直接从命令提示符(管理员)运行它。有没有办法改变输出到文本文件的行数?

BCP "SELECT * FROM db.dbo.table WHERE row_date = '2016-10-11'" queryout "C:/Users/table.csv" -t, -c -S "servername" -T

1000 rows successfully bulk-copied to host-file. Total received: 1000
1000 rows successfully bulk-copied to host-file. Total received: 2000
1000 rows successfully bulk-copied to host-file. Total received: 3000
1000 rows successfully bulk-copied to host-file. Total received: 4000
1000 rows successfully bulk-copied to host-file. Total received: 5000
1000 rows successfully bulk-copied to host-file. Total received: 6000


12136 rows copied.
Network packet size …
Run Code Online (Sandbox Code Playgroud)

sql-server bcp

5
推荐指数
1
解决办法
4215
查看次数

如何在 SQL Server 中对具有索引视图的表使用 bcp in

我正在使用 SQL Server 2017,并希望在脚本中使用“bcp in”来填充多个数据库中的表。我无法将数据导入到具有索引视图的表中。以下是重现我的问题的 MCVE:

  1. 运行本文末尾的脚本,用两个表、一个索引视图和一些数据填充测试数据库。

  2. 运行bcp out将表Table1中的测试数据导出到文件中:

bcp [dbo].[Table1] out .\Table1.bcp -S "localhost" -d TestDB -T -k -N
Run Code Online (Sandbox Code Playgroud)
  1. 删除表1中的测试数据:
DELETE FROM [dbo].[Table1]
Run Code Online (Sandbox Code Playgroud)
  1. 尝试使用bcp in将数据导入到 Table1 中:
bcp [dbo].[Table1] in .\Table1.bcp -S "localhost" -d TestDB -T -k -N
Run Code Online (Sandbox Code Playgroud)

结果:失败并显示错误消息INSERT failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'...

注意:如果我在视图上删除索引 [ix_v1],这将会成功:仅当表被索引视图引用时才会出现该问题。

  1. 尝试使用bcp in和 -q 开关将数据导入到 Table1 :
bcp [dbo].[Table1] in .\Table1.bcp -S "localhost" -d TestDB -T -k -N -q
Run Code Online (Sandbox Code Playgroud)

结果:失败并显示错误消息Invalid object …

sql-server bcp

4
推荐指数
1
解决办法
624
查看次数

如何从根驱动器运行 bcp 实用程序?

我的机器没有安装完整的 SQL Server。我的机器上安装了以下可分发的软件包:-

  1. Microsoft® SQL Server® 2008 R2 命令行实用程序
  2. Microsoft® SQL Server® 2008 R2 本机客户端

我有一个运行 bcp 实用程序的批处理文件。如果我从 bcp.exe 所在的文件夹(...tools\binn)运行这个批处理文件,它就可以工作。

我的转储问题是是否有任何方法可以仅从 c:\ 驱动器运行 bcp 实用程序。现在,如果它从 c:\ drive 运行,它会说:-

bcp 不被识别为内部或外部命令,..

sql-server-2008 bcp

3
推荐指数
1
解决办法
9913
查看次数

在 SQL Server BCP xml 格式文件中使用不可打印的字符作为 TERMINATOR

我有一个纯文本数据文件,其中包含由不可打印字符"File Separator" (0x1c) 分隔的字段的记录。我正在尝试使用 SQL Server 的 bcp 实用程序将此数据加载到我的数据库中。然而,当使用文件分隔符的十六进制编码值作为 TERMINATOR 时,出现语法错误。

我试过使用

  • 十六进制编码值: "0x1c"
  • XML 编码值作为十六进制: ""
  • XML 编码值作为十进制: ""

这些都不起作用,但是当对可打印字符使用相同的编码时,例如tab,这确实有效:	, 	(0x9没有。不足为奇,因为这是一个 XML 文件。)

结论似乎是不支持不可打印的字符。是这种情况吗?这将是具有讽刺意味的,因为不可打印的分隔符正是为此目的而创建的......

您可以在下面找到重现此问题的所有代码:

XML 格式文件:test.xml

<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="&#x1c;" MAX_LENGTH="10" COLLATION="Latin1_General_CS_AS_WS"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="41"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="COL1" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="2" NAME="COL2" xsi:type="SQLNUMERIC" PRECISION="4" SCALE="0"/>
 </ROW>
</BCPFORMAT>
Run Code Online (Sandbox Code Playgroud)

数据文件:test.txt
这只是一行,作为一个测试用例。StackExchange 不会在下面的行中显示分隔符,但是当您单击此帖子的“编辑”时,分隔符已包含在内,您应该能够复制粘贴它。

1111111112008
Run Code Online (Sandbox Code Playgroud)

命令行

bcp TEST_DB.dbo.UL_TEST in "test.txt" -T -f "test.xml"
Run Code Online (Sandbox Code Playgroud)

xml sql-server bcp encoding

3
推荐指数
1
解决办法
1268
查看次数

为什么 BCP 会创建这么大的文件?

我正在通过 BCP 创建一些报告以通过电子邮件发送。

create TABLE ##tempsss
    (
        create TABLE ##JOB_DataAssociacao_verContrato
(
     F1        VARCHAR(6)  
    ,F2        VARCHAR(200)  
    ,F3        VARCHAR(22)  
    ,F4        char(1)    
    ,F5         varchar(10) 
    ,F6         varchar(15)
    ,F7         varchar(30)  
    ,F8          varchar(10)      
    ,F9          VARCHAR(18)  
)  --it needs to be varchar to be able to use header
    )
    
insert into  ##tempsss
SELECT 
...fields...     
FROM some table or view
go
-------------------------------------------------------------
--passo 2 --

exec xp_cmdshell 'bcp "select ''field1'',''field2'',''field3'' UNION ALL select * from table or view" queryout "filepath\filename.xls" -U sa -P password -w  -S servername'
------------------------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

sql-server bcp sql-server-2012

2
推荐指数
1
解决办法
224
查看次数

如何以事务一致的方式BCP导出三个相关表?

我想将三个相关表导出到文件。这三个表相互之间存在关系。有没有一种好方法可以以事务一致的方式 bcp 导出这些表?

sql-server bcp sql-server-2014

2
推荐指数
1
解决办法
175
查看次数

使用 bcp 导出数据以处理损坏的数据

DBCC CHECKDB在 SQL Server 2014 上已损坏行的表上运行时遇到一致性错误。在前 30,000 行(总计 140 万(140 万)行)之后,我遇到了损坏错误。

我想尝试bcp将数据取出,直到损坏为止。我想跳过损坏的行。我想bcp在损坏范围之后并尽量减少数据丢失。

我该怎么做?请详细说明。

另请参阅我之前的问题:在 SQL Server 2014 中的几个表上运行 CHECKDB 的一致性错误

sql-server bcp corruption sql-server-2014

1
推荐指数
1
解决办法
891
查看次数

从一个大的平面文件中批量插入前 1000 行

我有一个包含数亿行的大型平面文件。我只想插入其中的前 1000 个。我怎样才能做到这一点?

sql-server bcp bulk-insert

1
推荐指数
1
解决办法
4011
查看次数