【问题标题】:Setting collation property in the connection string to SQL Server 2005将连接字符串中的排序规则属性设置为 SQL Server 2005
【发布时间】:2011-03-05 03:56:22
【问题描述】:

我在 web.config 中有一个带有 SQL Server 2005 连接字符串的 ASP.Net Web 应用程序。

    Data Source=ABCSERVER;Network Library=DBMSSOCN;Initial Catalog=myDataBase;
User ID=myUsername;Password=myPassword;

我想在 web.config 中为不同的语言(例如法语)指定排序规则属性

    Data Source=ABCSERVER;Network Library=DBMSSOCN;Initial Catalog=myDataBase;
User ID=myUsername;Password=myPassword;Collation=French_CS_AS

Collat​​ion 字在连接字符串中无效。

我们需要使用什么关键字来指定 SQL Server 2005 连接字符串中的排序规则?

编辑

我了解排序规则可以在数据库安装期间设置,也可以更改。我不想在数据库中永久更改它。但我希望 SQLClient 根据应用程序的设置来设置排序规则。 我只想在使用像

这样的 SQL 查询时使用它
SELECT * FROM TESTTABLE ORDER BY TESTCOLUMN COLLATE French_CS_AS

我试图确保对于给定的连接,该连接的所有命令/查询将自动使用"French_CS_AS" - 基于连接字符串中的属性设置,而不是更改查询定义

【问题讨论】:

  • 此页面列出了您可以在 SQL Server 的连接字符串中设置的所有属性。没有可以设置的“排序规则”属性,但有“当前语言”来指定 SQL Server 语言记录名称。在页面顶部选择您正在使用的 .NET Framework 版本。 msdn.microsoft.com/en-us/library/…

标签: sql-server-2005 ado.net connection-string globalization


【解决方案1】:

您不能为连接设置排序规则。根本不支持。请参阅 SQL Server Native Client: Connection strings and OLE DB 了解有关如何解析连接字符串的非常有趣的博客文章。

您可以为连接设置语言。为连接设置语言会更改处理日期的方式,并导致以指定语言提供系统错误消息。有关设置语言的更多信息,请参阅Session Language

关于对来自COLLATE (Transact-SQL) 的非Unicode 类型使用排序规则的警告:

char 和 varchar 数据类型支持代码页转换,但 text 数据类型不支持。不报告代码页转换期间的数据丢失。

理想情况下,如果您想从数据中获得一致的多语言支持,您应该使用 Unicode 数据类型(nvarchar 等)。您还应该查看 MSDN 上的 Collation and International Terminology 文章以获取更多信息。它包含对一些其他文章的引用,这些文章也非常有用,所以不要停在那里。

【讨论】:

  • +1 表示 根本不支持。事情就是这样,虽然我们不喜欢它,但它就是答案。
猜你喜欢
  • 2012-02-22
  • 2011-12-08
  • 2010-10-25
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 2010-09-05
  • 2012-07-03
相关资源
最近更新 更多