SQL Server 2008替换Unicode字符

SQL Server 2008替换Unicode字符,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我刚刚完成了一个项目,将34个未规范化数据源中的数据聚合到一个规范化的SQLServer2008数据库中 唯一的问题是…这些数据源中较大的文本字段已经失去了一些保真度,现在显示的是Unicode控制字符(很多) 这是我用来从一个以制表符分隔的*.txt文件导入数据的代码: BULK INSERT MyTabeNameHere FROM 'C:\FILE\PATH\HERE\FileNameHere.txt' WITH (

我刚刚完成了一个项目,将34个未规范化数据源中的数据聚合到一个规范化的SQLServer2008数据库中

唯一的问题是…这些数据源中较大的文本字段已经失去了一些保真度,现在显示的是Unicode控制字符(很多)

这是我用来从一个以制表符分隔的*.txt文件导入数据的代码:

BULK INSERT MyTabeNameHere
        FROM 'C:\FILE\PATH\HERE\FileNameHere.txt'       
        WITH
        (
            FIELDTERMINATOR = '\t',
            ROWTERMINATOR = '\n',
            FIRSTROW = 2
        )
示例数据可能是:

Lorem ipsum ò dolor sit amet
ááá Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsumû dolor sit amet
Lorem ipsum dolor sit aÆmet
我想通过一个SQL函数运行数据并输出这个

所需的输出将是:

Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet    
Lorem ipsum dolor sit amet
Lorem ipsum dolor sit amet
提前谢谢

在这种情况下,还有其他选项可能会有所帮助,例如:

DATAFILETYPE = 'widechar' -- and others

当时,我不得不放弃使用格式化文件,并将widechar作为获得正确输出的选项。不过,我对你的困境还不够了解,不知道这是否对你有用

[…]34个未规范化的数据源[…]


正如批量文档中提到的,了解您正在读取的文件类型(ascii、ansi等)很重要。

文本文件“失去了保真度”?如果你在创造你自己的术语,我们该如何理解你的意思?雷姆斯“忠实”的同义词是“准确”。给出输入和错误输出的示例可能会有所帮助。问题是:文件是否已损坏,或者您是使用错误的编码读取的?你的术语没有让它更清楚。检查问题文件?他们是否仅使用\n(不是\r\n)?大容量插入可能会变得可爱,并且正在进行子插入\r\n。试试char(10),我已经过了重新导入数据的阶段。我想做的是更新数据库中已有的数据。即使这将Unicode控制字符替换为“”。我更愿意将它们替换为所需的字符,但替换为“”是选项B。如果您不使用正确的编码重新导入数据,您可能只需要根据源手动查看部分数据,然后使用,直到你满意为止@Blam在寻找换行符时可能是正确的。@TimLehner我怀疑编码是正确的,因为这些是常见的外语字符。我一直在处理它,在.NET中有一个简单的转换,但他坚持使用SQL函数和批量导入,这是造成这种失真的原因之一。
CODEPAGE = 'ACP' -- and others