2

我在 SQL Server 2008 数据库 (10.0.2841) 中有一个列,我需要将其插入另一个数据库 (10.0.5500)。在我插入目标数据库之前,我必须确保该列仅包含 windows-1252 字符。

我目前正在使用 SSIS 包来执行此操作。我的源查询有一堆有效的“替换”,但它非常丑陋,而且肯定很快就无法维护。

select replace(replace(rep.......etc(column, 'º', ''), nchar(0x9D), ''), ......etc from table

肯定有更好的方法来做到这一点,但我不知道它是什么。那么,我该如何在查询中(或者可能在脚本组件中?)说“如果这里有一个字符在这种编码中不起作用,请给我一个空字符串来代替它?”

4

2 回答 2

0

我假设您的源数据库的排序规则与您的目标数据库不同。也许您可以使用 COLLATE 将排序规则更改为目标数据库的排序规则。例如:

SELECT
  column COLLATE Latin1_General_CI_AS
FROM table
于 2012-11-30T07:32:36.310 回答
0

我可能会在数据流中添加一个脚本转换并应用 .NET 框架,例如 Encoding.Convert,参考http://msdn.microsoft.com/en-us/library/kdcak6ye.aspx

于 2012-12-01T11:12:51.267 回答