Agrupamentos em consultas distribuídas

O SQL Server oferece suporte a vários agrupamentos. Os agrupamentos podem ser diferentes em cada coluna, e cada valor de caractere ter uma propriedade de agrupamento associada. O SQL Server interpreta a propriedade de agrupamento dos dados de caracteres de uma fonte de dados remota e trata-os de maneira correspondente.

O SQL Server usa o agrupamento de dados remotos para operações de comparação e ordenação em dados de caracteres, Unicode e não-Unicode. As informações de agrupamento de dados de caracteres remotos é determinada de maneira diferente dependendo de se a fonte de dados corresponde a uma instância do SQL Server:

  • O Provedor OLE DB do Microsoft SQL Server Native Client relata o agrupamento automaticamente para cada coluna retornada pelo provedor.

  • Para tabelas remotas que não estão no SQL Server, mas para as quais sabe-se que o agrupamento é o mesmo que um dos agrupamentos com suporte do SQL Server, o administrador pode especificar o agrupamento padrão da fonte de dados OLE DB como parte da definição do servidor vinculado. Em seguida, o SQL Server pode usar o agrupamento padrão como o agrupamento de todas as colunas retornadas daquele servidor vinculado.

Depois que o SQL Server determina o agrupamento de uma coluna de caracteres remota, o SQL Server segue as mesmas regras de conversão, comparação e operação nas colunas da tabela remota como o faz para colunas locais. Para obter mais informações sobre as regras que o SQL Server aplica a agrupamentos e os nomes dos agrupamentos com suporte do SQL Server, consulte Trabalhando com agrupamentos.

Se o agrupamento do banco de dados remoto padrão for diferente do agrupamento do banco de dados local atual, as cadeias de caracteres remotas serão tratadas como Unicode. Para ajudar a ter certeza de que as cadeias de caracteres serão tratadas uniformemente em todos os servidores remotos, faça o seguinte:

  • Use o formato Unicode, N**'string'**, para especificar literais de cadeias de caracteres em consultas distribuídas.

  • Defina servidores vinculados que têm um banco de dados explícito, em vez de contar com um banco de dados remoto padrão. Esse banco de dados pode ter um agrupamento diferente.

Definindo opções de servidor vinculado

As seguintes opções de servidor vinculado definidas usando sp_serveroption controlam se e como o SQL Server usa agrupamentos de servidores vinculados:

  • A opção usar agrupamento remoto especifica se o agrupamento de uma coluna remota ou de um servidor local será usado. Quando true, o agrupamento de colunas remotas é usado para fontes de dados do SQL Server e o agrupamento especificado em nome do agrupamento é usado para fontes de dados que não são do SQL Server. Quando false, as consultas distribuídas sempre usam o agrupamento padrão da instância do servidor local, e o nome do agrupamento e o agrupamento de colunas remotas são ignorados.

  • A opção nome do agrupamento especificará o nome do agrupamento usado pela fonte de dados remota se a opção usar agrupamento remoto for true e a fonte de dados não for uma fonte de dados do SQL Server. O nome deve ser um dos agrupamentos com suporte fornecido pelo SQL Server. Use essa opção ao acessar uma fonte de dados OLE DB que não seja do SQL Server, mas cujo agrupamento corresponde a um dos agrupamentos do SQL Server. As fontes de dados do SQL Server relatam seus agrupamentos de colunas e o nome do agrupamento é ignorado para servidores vinculados que fazem referência a fontes de dados do SQL Server.

    ObservaçãoObservação

    Usar as opções de servidor vinculado é a única maneira de habilitar o uso de agrupamentos remotos. Portanto consultas construídas que usam nomes ad hoc fornecidos por OPENROWSET e OPENDATASOURCE não podem usar as informações de agrupamento de dados de caracteres remotos. Além disso, todos os servidores vinculados no SQL Server versão 7.0 que são atualizados para o SQL Server 2000 ou posterior são definidos para usar agrupamento remoto=false.

Resumo das configurações de opções

A tabela a seguir resume como o SQL Server determina o agrupamento usado para cada coluna quando a opção usar agrupamento remoto está definida como true (ou on).

Tipo de servidor vinculado

Nome de agrupamento não definido

Nome de agrupamento definido (como CollX)

SQL Server

Agrupamento real da coluna remota.

Agrupamento real da coluna remota.

Outros

Agrupamento padrão da instância local do SQL Server.

CollX

A tabela a seguir resume como o SQL Server determina o agrupamento usado para cada coluna quando a opção usar agrupamento remoto está definida como false (ou off).

Tipo de servidor vinculado

Nome de agrupamento não definido

Nome de agrupamento definido (como CollX)

SQL Server

Agrupamento padrão da instância local do SQL Server.

Agrupamento padrão da instância local do SQL Server.

Outros

Agrupamento padrão da instância local do SQL Server.

Agrupamento padrão da instância local do SQL Server.