试图将许多行大容量插入到表中。
我的SQL语句:
INSERT INTO [NCAATreasureHunt-dev].dbo.CatalinaCodes(Code)
SELECT (Code)
FROM OPENROWSET(BULK 'C:\Users\Administrator\Desktop\NCAATreasureHunt\10RDM.TXT',
FORMATFILE='C:\Users\Administrator\Desktop\NCAATreasureHunt\formatfile.xml') as t1;10RDM.TXT:
DJKF61TGN7
Q9TVM16Z6Z
X44T4169FN
JQ2PT1ZXZK
C7NW71QPNG
SFJRR1FWKZ
TYZJW1ZPFY
9MR3M1J3N5
QJ6R217JTK
TVJVW19TYTformatfile.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="C1" xsi:type="CharTerm" TERMINATOR="\r\n"/>
</RECORD>
<ROW>
<COLUMN SOURCE="C1" NAME="Code" xsi:type="SQLNVARCHAR" />
</ROW>
</BCPFORMAT>这是我所得到的错误:不能将值NULL插入'Claimed‘列,列不允许空值。插入失败。
我想跳过声称的那一栏。我的格式文件做错了什么?
发布于 2013-03-23 00:29:13
看看这个answer是否有用。
使用XML格式文件,当使用bcp命令或BULK INSERT语句直接导入表时,不能跳过列。但是,除了表的最后一列之外,您还可以导入所有列。如果必须跳过除最后一列以外的任何列,则必须创建目标表的视图,该目标表仅包含数据文件中包含的列。然后,可以将数据从该文件批量导入到视图中。 要使用XML格式文件通过使用OPENROWSET(BULK.)跳过表列,必须在select列表和目标表中提供显式列列表,如下所示: 插入..。从OPENROWSET中选择(批量.)
https://stackoverflow.com/questions/15581392
复制相似问题