回复:SQL2005数据导入问题
如果用固定个空格分隔,有一种方法,你先建立个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=" " MAX_LENGTH="50"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR=" " MAX_LENGTH="50"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR=" " MAX_LENGTH="50"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR=" " MAX_LENGTH="50"/>
<FIELD ID="5" xsi:type="CharTerm" TERMINATOR=" " MAX_LENGTH="50"/>
<FIELD ID="6" xsi:type="CharTerm" TERMINATOR="\n" MAX_LENGTH="50"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="1" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="2" NAME="2" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="3" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="ds" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="5" NAME="ww" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="6" NAME="4" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
再用如下语句读取
select *
from openrowset( bulk 'u:\test\test.txt',
FORMATFILE='u:\test\test.xml',FIRSTROW=2,CODEPAGE='RAW',MAXERRORS=1) a