允许使用特殊字符SQL Server 2008

时间:2009-10-27 05:48:03

标签: sql-server sql-server-2008 collation

我正在使用SQL Server 2008快速版,其归类设置设置为默认值。我希望在我的数据库中存储特殊字符,例如á,â,ã,å,ā,ă,ą,but但它会将它们转换为普通字符,如'a'。如何阻止SQL Server这样做?

2 个答案:

答案 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列。

你说你“只是在数据库中运行直接查询”。您可以尝试此查询,看看是否得到相同的结果?