CREATE TABLE tmp_txt_vendor
(a1 varchar (200) NULL,a2 varchar (200)  NULL,a3 varchar (200)
null, a4 varchar (200) null)exec ('BULK  INSERT  tmp_txt_vendor  FROM  '''+@srcfile+'''  WITH ( FIELDTERMINATOR ='''+@fieldTerminator1+''', ROWTERMINATOR = '''+@ROWTERMINATOR1+''')')@srcfile 是路径,fieldTerminator1="|" ,ROWTERMINATOR =chr(10)  --换行符号
txt文本文件中有这样的一条记录 :1|宋韡佳|3|4那么按道理来说进到表 tmp_txt_vendor中的记录应该是:
a1   a2       a3   a4
1    宋韡佳   3     4
可现在是:
a1   a2       a3   a4
1    宋       佳   3|4
这是什么原因啊....难道 sql把 "韡" 也当成是 | 符号了吗?
 类似的还有"弢"字

解决方案 »

  1.   

    不晓得啊...sql中没有咋办呀?
    能不能是出现不能识别的字或者符号的都完整的添进字段里?
      

  2.   

    --没有问题.你看看你的字符集编码.我测试如下:CREATE TABLE tmp_txt_vendor
    (a1 varchar (200) NULL,a2 varchar (200)  NULL,a3 varchar (200)
    null, a4 varchar (200) null)DECLARE @srcfile AS VARCHAR(20),
    @fieldTerminator1 AS VARCHAR(10),
    @ROWTERMINATOR1 AS VARCHAR(20)
    SELECT @srcfile='C:\TEST.TXT',
    @fieldTerminator1='|',
    @ROWTERMINATOR1='\n'
    exec ('BULK  INSERT  tmp_txt_vendor  FROM  '''+@srcfile+'''  WITH ( FIELDTERMINATOR ='''+@fieldTerminator1+''', ROWTERMINATOR = '''+@ROWTERMINATOR1+''')')
    --查询
    select * from tmp_txt_vendor
    --结果
    /*
    a1 a2 a3 a4
    1 宋韡佳 3 4
    */--文本文件如下:
    a1|a2|a3|a4
    1|宋韡佳|3|4