在连接字符串中设置SQL Server 2005的排序规则属性

5

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

    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

但是在连接字符串中,Collation这个词是无效的。

在SQL Server 2005连接字符串中,我们需要使用哪个正确的关键字来指定排序规则?

编辑

我知道可以在数据库安装期间设置排序规则,并且还可以更改。我不想永久地更改它。但是我希望SQLClient根据应用程序的设置来设置排序规则。 我只想在使用SQL查询时使用它,例如:

SELECT * FROM TESTTABLE ORDER BY TESTCOLUMN COLLATE French_CS_AS

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

此页面列出了 SQL Server 连接字符串中可设置的所有属性。您不能设置“排序规则(collation)”属性,但可以使用“当前语言(Current Language)”来指定 SQL Server 语言记录名称。请在页面顶部选择您正在使用的 .NET Framework 版本。http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring(v=vs.80).aspx - Only You
1个回答

6

您无法为连接设置排序规则。它根本不被支持。请参阅SQL Server Native Client:连接字符串和OLE DB,了解有关连接字符串解析的非常有趣的博客文章。

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

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

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

理想情况下,如果您想要数据的一致的多语言支持,应使用Unicode数据类型(nvarchar等)。您还应查看MSDN上的排序规则和国际术语文章以获取更多信息。它还包含了一些非常有用的其他文章的参考资料,因此不要止步于此。

+1 表示 这根本不被支持。事情就是这样,虽然我们不喜欢,但这就是答案。 - Ian Boyd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接