【发布时间】:2018-01-10 12:20:40
【问题描述】:
我刚刚提出的一个问题得到了一些很大的帮助,该问题刚刚得到了回答 (Query over two databases has error due to collation mismatch),以克服我正在使用的 MSSQL 查询的排序规则错误。
有没有办法让查询首先检查数据库排序规则?
假设的例子(我不知道语法):
CASE
WHEN DATABASEPROPERTYEX('PracticeEvolve_c1.dbo, 'Collation') SQLCollation = 'COLLATE SQL_Latin1_General_CP1_CI_AS'
THEN
CASE
WHEN [dd_entity_d2].[type] COLLATE SQL_Latin1_General_CP1_CI_AS ='Individual'
THEN etClient.FirstName COLLATE SQL_Latin1_General_CP1_CI_AS
ELSE [dd_entity_d4].[firstname] COLLATE SQL_Latin1_General_CP1_CI_AS
END AS FirstName,
ELSE
CASE
WHEN [dd_entity_d2].[type] ='Individual'
THEN etClient.FirstName
ELSE [dd_entity_d4].[firstname]
END AS FirstName
END,
CASE
WHEN DATABASEPROPERTYEX('PracticeEvolve_c1.dbo, 'Collation') SQLCollation = 'COLLATE SQL_Latin1_General_CP1_CI_AS'
THEN
CASE
WHEN [dd_entity_d2].[type] COLLATE SQL_Latin1_General_CP1_CI_AS ='Individual'
THEN etClient.LastName COLLATE SQL_Latin1_General_CP1_CI_AS
ELSE [dd_entity_d4].[lastname] COLLATE SQL_Latin1_General_CP1_CI_AS
END AS LastName,
ELSE
CASE
WHEN [dd_entity_d2].[type] ='Individual'
THEN etClient.LastName
ELSE [dd_entity_d4].[lastname]
END AS LastName
END,
这样,如果我遇到我们站点中的一台服务器在 PracticeEvolve_c1 数据库上使用与其他服务器不同的排序规则,我就不必使用不同的查询。
这个可以吗?
【问题讨论】:
标签: sql sql-server tsql