我们一直在 Microsoft Windows Server 2003 SP2 上使用 SQL Server,现在正尝试转移到运行 2008 R2 的新服务器。我们的一个客户有一个单独的工作数据库,它创建的文本文件每天通过 FTP 更新到我们服务器上的一个文件夹中 3 次,然后导入到我们数据库中相应的一系列表格中。这是导入的旧代码:
Delete
From Client.dbo.jobs
Go
BULK INSERT CarltonRR.dbo.jobs
FROM 'D:\folder\clientDatabaseUpload\jobs.txt'
WITH
(
DATAFILETYPE='char',
CODEPAGE = '65001',
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\|\n'
)
Go
在最初的错误和随后的搜索之后,由于本文档中提到的问题,我删除了 'CODEPAGE = '65001' 行,即 2008 R2 不支持 UTF-8,但是数据库会自动转换为 UTF-16。这导致显示一些旧系统可以正常处理的字符(例如£)时出现问题。未正确显示的字段的数据类型是 varchar(50)
是否需要对从 2003 到 2008 R2 的 SQL 查询进行更改,以允许 .txt 文件中的特殊字符显示在数据库中?
编辑:有问题的字段的数据类型是 nvarchar(50),而不是 varchar(50) 编辑 2:如果有帮助,替换 ' £ ' 符号的列出的符号是 ' ┬ú '