Como obter uma versão que diferencia maiúsculas de minúsculas de um agrupamento no SQL Server?

Existe uma maneira de obter uma versão com diferenciação de maiúsculas e minúsculas para usar em uma consulta?

Digamos que a consulta possa ser usada em bancos de dados com diferentes agrupamentos, alguns que não diferenciam maiúsculas de minúsculas e podem ter culturas diferentes. (vários clientes, por exemplo)

No entanto, essa consulta deve sempre se comportar com distinção entre maiúsculas e minúsculas e, se possível, não alterar a cultura de intercalação e outras propriedades.

Por exemplo, se um banco de dados estiver usando SQL_Latin1_General_CP1_CI_AS (IC aqui significa Case Insensitive), eu gostaria de usar SQL_Latin1_General_CP1_CS_AS (CS for Case Sensitive).

Exemplo de consulta simplista:

DECLARE @Title nvarchar(2) = 'qQ'

--Case insensitive (following DB collation)
SELECT REPLACE(@Title, 'q', 'o') --Result: 'oo'

--Case sensitive, but fixed to a collation
SELECT REPLACE(@Title COLLATE SQL_Latin1_General_CP1_CS_AS, 'q', 'o') --Result: 'oQ'

A correção de um agrupamento como esse na consulta pode causar problemas ao migrar o código ou alterar o agrupamento do banco de dados em uma data posterior.

Existe uma função interna para obter a versão com diferenciação de maiúsculas e minúsculas do agrupamento atual ou uma solução alternativa que possa ser usada para isso?

questionAnswers(1)

yourAnswerToTheQuestion