绕过在字符串文字中添加前缀N的需要

时间:2009-08-05 10:44:14

标签: sql unicode localization

我们继承了一个最初并非设计用于使用本地化数据的应用程序(俄语/日语等本地化字符串,本地化日期时间格式等)。

从事该项目的原始开发人员并未预料到会有unicode字符串。虽然表的数据类型支持unicode字符(NVARCHAR等),但是它们的一些查询没有正确地以N为前缀。

例如:

select * from table where searchString like '%<search string here>%'

使用Unicode字符串实现此功能:

select * from table where searchString like N'%<search string here>%'

然后我们决定只需要手动为所有字符串文字添加N,但我们恐怕发现了大量的查询。

所以,我的问题是,有没有办法不在我们的查询中加上前缀N但它仍然可以工作?就像告诉SQL Server“嘿,请把所有字符串视为Unicode。请不要让我每次都告诉你。:)”

此致 伊恩

2 个答案:

答案 0 :(得分:1)

在SQL Server 2000和2005中,据我所知,没有。不能说2008年,但怀疑一样。

答案 1 :(得分:1)

你做不到。它与ODBC / OLE驱动程序的兼容性是必要的(因此他们不会尝试进行代码页转换)。