SQL BCP无法插入标识列的值
我正在使用导入以制表符分隔的文件。我的表有一个标识列,当我运行bcp命令时,得到的错误是 错误=[Microsoft][SQL Server本机客户端11.0]无效的日期格式 第二列是datetime。当我使用SQL BCP无法插入标识列的值,sql,sql-server,bcp,Sql,Sql Server,Bcp,我正在使用导入以制表符分隔的文件。我的表有一个标识列,当我运行bcp命令时,得到的错误是 错误=[Microsoft][SQL Server本机客户端11.0]无效的日期格式 第二列是datetime。当我使用-E标志(正如许多人建议的那样)时,我得到的错误如下 错误=[Microsoft][SQL Server本机客户端11.0]转换规范的字符值无效 当我没有身份栏时,一切都正常。我不知道这里少了什么 这是一份复印件: CREATE TABLE [dbo].[test_temptable] (
-E
标志(正如许多人建议的那样)时,我得到的错误如下
错误=[Microsoft][SQL Server本机客户端11.0]转换规范的字符值无效
当我没有身份栏时,一切都正常。我不知道这里少了什么
这是一份复印件:
CREATE TABLE [dbo].[test_temptable]
(
[ID] int NOT NULL IDENTITY PRIMARY KEY,
[Date] [datetime] NULL,
[Column2] [varchar](100) NULL,
[Column3] [varchar](100) NULL,
)
ON [PRIMARY]
GO
测试数据(testtentable.txt-制表符分隔):
BCP命令
bcp "testDB.dbo.test_temptable" in "c:\temp\test\testTempTable.txt" -c -t"\t" -T -S "testSQlServer" -E -e c:\temp\test\error.csv
当我从表中删除[ID]
列并运行时,一切正常
我做错了什么
编辑:
表没有标识列时指定的值
有用链接:
问题是您试图将第一列(日期)添加到INT列中 你有三个选择
祝你好运 插入不带标识列的行时,分配给它的值是多少?您确定它不是自动递增列吗?在这种情况下,您不需要显式指定该值应该是什么。。DB会帮你做的。我已经添加了表,以及它的值在没有标识列时的外观。此外,它是一个自动递增列,但BCP无法检测,或者我做错了什么。稍后可能为true:)使用-f参数指定格式文件。格式化文件将从csv映射到表。或者,导入一个没有ID列的临时表,然后运行一个查询,将数据从临时表复制到测试表。谢谢。但为什么在运行BCP命令时BCP无法填充[ID]列。它是否应该插入ID列递增的行?谢谢。我将尝试这些选项。为了避免使用格式化文件(我发现这是一个痛苦的过程),您可以创建一个与表完全相同的视图,然后插入到该视图中。。。抱歉,看起来和你的文件一模一样
bcp "testDB.dbo.test_temptable" in "c:\temp\test\testTempTable.txt" -c -t"\t" -T -S "testSQlServer" -E -e c:\temp\test\error.csv