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