尝试将大量行大量插入表格。
我的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
TVJVW19TYT
formatfile.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”列,列不允许空值。 INSERT失败。
我正试图跳过Claimed专栏。我的格式文件中出错了什么?
答案 0 :(得分:0)
查看此answer是否有帮助。
使用XML格式文件时,您无法跳过列 使用bcp命令或BULK直接导入表 INSERT语句。但是,您可以导入除最后一列之外的所有列 一张桌子。如果你必须跳过除最后一列之外的任何一栏,你必须 创建仅包含列的目标表的视图 包含在数据文件中。然后,您可以批量导入数据 将文件存入视图。
使用XML格式文件通过使用跳过表格列 OPENROWSET(BULK ...),您必须提供明确的列列表 选择列表以及目标表中,如下所示:
INSERT ...从OPENROWSET中选择(BULK ...)