edwardking - 2008-5-31 11:01:00
我有一个文本文件,要导入数据库
格式如下
1 2 3 ds ww 4
用导入到出,导入的时候,空格就是列的分隔符
这个要怎么导入???
fengglory - 2008-6-3 10:44:00
如果你的数据库是SQL Server 2005
有一个办法是:你可以先将TXT导入到Execl中,按空格做分隔符,导放完成后,再用将Execl导入到数据库中!
zsforever - 2008-6-10 16:58:00
如果用固定个空格分隔,有一种方法,你先建立个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
zsforever - 2008-6-10 16:59:00
这种方法的效率不会低于bcp