6

我正在使用 SQL Server 2008 速成版,其排序规则设置设置为默认值。我希望在我的数据库中存储特殊字符,如 á ,â ,ã ,å ,ā ,ă ,ą ,ǻ 但它将它们转换为普通字符,如'一个'。如何阻止 SQL Server 这样做?

4

2 回答 2

8

确保您的列使用类型 nvarchar(...),而不是 varchar(...)。前者是Unicode,后者是ASCII。

此外,请确保您的数据库默认排序规则设置为 Accent Sensitive,并且您的列以这种方式存储。您可能还想检查您的实例默认排序规则,因为这会影响系统数据库的默认排序规则,尤其是 tempdb。

于 2009-10-27T05:56:50.603 回答
4

Rahul,这是一个非常简单的查询,可以在 SQL 2005 和 2008 上完美运行:

询问

DECLARE @t1 TABLE (
    Col1    nvarchar(30)
)

INSERT INTO @t1 VALUES (N'á ,â ,ã ,å ,ā ,ă ,ą ,ǻ')

SELECT * FROM @t1

结果

Col1
------------------------------
á ,â ,ã ,å ,ā ,ă ,ą ,ǻ

这里没有什么特别的。默认的排序规则没有变化,只是一个简单的 NVARCHAR 列。

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

于 2009-10-27T18:12:35.857 回答