我正在使用SQL Server 2008快速版,其归类设置设置为默认值。我希望在我的数据库中存储特殊字符,例如á,â,ã,å,ā,ă,ą,but但它会将它们转换为普通字符,如'a'。如何阻止SQL Server这样做?
答案 0 :(得分:8)
确保您的列使用的是nvarchar(...)类型,而不是varchar(...)。前者是Unicode,后者是ASCII。
此外,请确保将数据库默认排序规则设置为Accent Sensitive,并确保以这种方式存储列。您可能还需要检查实例默认排序规则,因为这会影响系统数据库的默认排序规则,尤其是tempdb。
答案 1 :(得分:3)
Rahul,这是一个非常简单的查询,可以在SQL 2005和2008上完美运行:
DECLARE @t1 TABLE (
Col1 nvarchar(30)
)
INSERT INTO @t1 VALUES (N'á ,â ,ã ,å ,ā ,ă ,ą ,ǻ')
SELECT * FROM @t1
Col1
------------------------------
á ,â ,ã ,å ,ā ,ă ,ą ,ǻ
这里没什么特别的。没有归类更改默认值,只是一个简单的NVARCHAR列。
你说你“只是在数据库中运行直接查询”。您可以尝试此查询,看看是否得到相同的结果?