我们继承了一个最初并非设计用于使用本地化数据的应用程序(俄语/日语等本地化字符串,本地化日期时间格式等)。
从事该项目的原始开发人员并未预料到会有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。请不要让我每次都告诉你。:)”
此致 伊恩
答案 0 :(得分:1)
在SQL Server 2000和2005中,据我所知,没有。不能说2008年,但怀疑一样。
答案 1 :(得分:1)
你做不到。它与ODBC / OLE驱动程序的兼容性是必要的(因此他们不会尝试进行代码页转换)。