Exportar (0) Imprimir
Expandir Tudo

USE FEDERATION (Banco de Dados SQL do Azure)

Atualizado: abril de 2014

Este tópico está DESATUALIZADO. Você pode encontrar a versão mais atual em Referência de Transact-SQL do SQL 14.

ImportantImportante
Este tópico não está atualizado. Para obter a versão atual, consulte USE FEDERATION.

Conecta-se a uma federação.

Convenções de sintaxe (Banco de Dados SQL do Azure)

USE FEDERATION ROOT
    WITH RESET


USE FEDERATION federation_name (distribution_name = value)
    WITH [FILTERING={ON|OFF},] RESET
[;]

ROOT
Aponta uma conexão existente com a raiz da federação. Se estiver conectado com um membro da federação, a conexão será restaurada para o banco de dados de raiz da federação. Quando conectado com qualquer outro banco de dados, não surte efeito.

federation_name
O nome da federação alvo da conexão.

distribution_name
O nome da chave dessa federação.

value
O valor a ser usado para estabelecer conexão com o membro da federação. O membro da federação que atende ao valor da federação se torna o membro ao qual a conexão é estabelecida.

O valor precisa atender ao tipo que a federação especificou no federation_name definido.

O valor não pode ser NULL.

WITH FILTERING=ON|OFF
Quando esse argumento não é apresentado, o filtro é definido como ON.

Quando FILTERING está definido como OFF, o escopo da conexão é definido como o intervalo total coberto pelo membro da federação que contém o valor de chave especificado. A conexão se comporta como se fosse com o membro por meio de seu nome de membro da federação física (o nome do banco de dados).

A filtragem é definida como OFF quando os aplicativos querem trabalhar com todos os dados contidos no membro da federação (por exemplo, para verificar todo o intervalo) e já têm uma lógica incorporada para lidar com a filtragem em uma única instância da unidade de federação atômica em seu aplicativo.

Quando FILTERING está definido como ON, o escopo da conexão é definido como a instância da chave da federação em um membro da federação em vez de como todo o intervalo do membro da federação. Nesse modo, o processador de consultas adiciona um predicado (fed_column=value) na coluna da federação a cada consulta que se refere a uma tabela federada.

A filtragem é definida como ON quando os aplicativos querem limitar seu acesso a uma unidade de federação atômica automaticamente (por exemplo, apenas para tenant_id 55).

WITH RESET
É uma palavra-chave necessária que torna a restauração da conexão explícita.

A instrução USE FEDERATION oferece um comportamento de pooling de conexão eficiente para bibliotecas de conectividade existentes, permitindo que os aplicativos se conectem primeiramente ao banco de dados que contém o objeto de federação e por meio da instrução USE FEDERATION, alternem para o membro da federação específico. Isso garante que o pool de conexão do cliente seja menor do que seria se fosse necessário abordar membros da federação individuais ou valores de unidade de federação atômica.

USE FEDERATION deve ser executada na conexão em qualquer ponto do tempo de vida da conexão, mas deve ser a única instrução no lote e não tem suporte à parametrização.

USE FEDERATION refaz uma conexão do membro da federação atual ou do banco de dados de raiz à raiz da federação ou ao valor especificado contido em um membro da federação. Quando uma conexão é refeita com USE FEDERATION, ela é restabelecida. Dessa forma, todas as configurações existentes e o contexto da conexão serão perdidos. Isso equivale a executar sp_reset_connection quando uma conexão é recuperada de um pool de conexões.

Como o banco de dados mestre não pode conter uma federação, USE FEDERATION ROOT executada no banco de dados mestre não surte efeito.

USE FEDERATION com um nome de federação inexistente retorna um erro, como ‘A federação <nome da federação> não existe’.

O uso de FILTERING=ON permite limitar a exibição da conexão somente a uma determinada instância da chave da federação. A conexão a uma instância da chave da federação associa a consulta a uma unidade de federação atômica específica. Isso modifica a semântica das consultas emitidas na conexão introduzindo um predicado P. P é injetado para todas as tabelas federadas em uma determinada consulta como Federation_Column =@filtering_value.

Qualquer consulta que tente carregar, inserir ou mover uma linha para fora do valor de filtragem de federação é inválida e falhará, embora haja uma restrição de verificação na tabela de destino que esteja impondo P."

WarningAviso
A unidade de federação atômica não é explicitamente um limite de segurança. O processador de consultas não garante zero de vazamento de informações entre as unidades. É possível que as linhas fora do intervalo sejam parcialmente processadas. A lógica escalar arbitrária pode ser executada nessas linhas, o que pode resultar em exceções inesperadas, como um erro de excedente ou divisão por zero.

O exemplo a seguir demonstra como rotear a conexão para a raiz da federação.

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
 
    using (SqlCommand command = connection.CreateCommand()) 
    { 
        // Route the connection to federation root 
        // Note that the CommandText should not contain any additional commends
        command.CommandText = "USE FEDERATION ROOT WITH RESET"; 
        command.ExecuteNonQuery(); 
    } 
}

A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft