批量插入不保留txt文件SQL Server 2008的特殊字符

时间:2019-01-25 15:56:24

标签: sql sql-server sql-server-2008 encoding

我有一个存储过程,该存储过程可批量导入文本文件并将其插入数据库。

CREATE TABLE DBO.TEMP_STORE
(
    ID NVARCHAR(MAX),
    [MONTH] NVARCHAR(MAX),
    [YEAR] NVARCHAR(MAX),
    STORE NVARCHAR(MAX),
    SUBMITTAL NVARCHAR(MAX),
    ENTITY NVARCHAR(MAX),
    SUBMITTAL_TYPE NVARCHAR(MAX),
    iCOUNT NVARCHAR(MAX),
    STATE NVARCHAR(MAX),
    COUNTRY NVARCHAR(MAX),
    REGION NVARCHAR(MAX),
    GLOBAL_REGION NVARCHAR(MAX),
    LOCAL_CURRENCY NVARCHAR(MAX)
)

--SELECT * FROM DBO.TEMP_STORE
--prepare bulk insert query to load data from file to temp table
SET @SQL='BULK INSERT DBO.TEMP_STORE FROM '''+ @FilePath+''''
SET @SQL=@SQL+'WITH ('
SET @SQL=@SQL+'DATAFILETYPE = ''char'',' 
SET @SQL=@SQL+'FIELDTERMINATOR = ''|'','
--SET @SQL=@SQL+'ROWTERMINATOR = ''\n'','
SET @SQL=@SQL+'ROWTERMINATOR = ''' + nchar(10) + ''','
SET @SQL=@SQL+'FIRSTROW =2)'

--print @SQL
EXEC (@SQL)

例如,导入更新ROLLING_CONE_SHOP_DETAIL集SHOP_STATE ='SãoPaulo'会导致在我选择导入的同一行时将数据存储为'S +úoPaulo'。我可以更新该行并明确解决该问题:

UPDATE TEMP_STORE 
SET STATE = 'São Paulo' 
WHERE STATE= 'S+úo Paulo'

但是当我进行批量插入时,它不会保留特殊字符。我已经确认我要导入的文本文件保存在utf-8并包含正确的字符。

如何确保自己的大写插图正确保留特殊字符?

编辑:此问题与“重复”问题不同,因为我不希望将数据导入为UTF-8,而是要导入保留我的特殊字符的数据。

也许从标题中删除utf-8可以避免造成混淆

0 个答案:

没有答案