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