我在 SQL Server 中创建了一个 Table_1,有两个字段:
Field1:varchar(15),可为空 字段 2:int
然后我使用下面的批量插入命令插入数据:
BULK INSERT [Table_1] FROM 'C:\DN4.DAT' WITH (BATCHSIZE = 10000, DATAFILETYPE = 'widechar', FORMATFILE = 'C:\DN4.XML', MAXERRORS = 2147483647, ROWS_PER_BATCH = 10000, TABLOCK);
DN4.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="NCharTerm" TERMINATOR="\x57\x5B\xB5\x6B\xC8\x7E\x62\x6B\x26\x7B" MAX_LENGTH="30" COLLATION="Chinese_PRC_CI_AS"/>
<FIELD ID="2" xsi:type="NCharTerm" TERMINATOR="\xB0\x8B\x55\x5F\xC8\x7E\x62\x6B\x26\x7B" MAX_LENGTH="24"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="\x4E\x00\x61\x00\x6D\x00\x65\x00" xsi:type="SQLVARYCHAR" LENGTH="15" NULLABLE="YES"/>
<COLUMN SOURCE="2" NAME="\x41\x00\x67\x00\x65\x00" xsi:type="SQLINT" NULLABLE="YES"/>
</ROW>
</BCPFORMAT>
DN4.dat 的内容为:
W[祂葉bk&{1 皨U_葉bk&{W[祂葉bk&{2 皨U_葉bk&{
第一条记录的字段1为空字符串,不为NULL,而第二条记录的字段1为NULL字符串,不为空。
但是在批量插入后,两条记录都将 field1 显示为 NULL。
那么,如何以不同的方式向 SQL Server 数据库插入空值和 NULL 值?