VENDAS: 1-800-867-1389

Como: Conectar a uma federação no Banco de Dados SQL do Azure

Atualizado: julho de 2015

Este tópico descreve como você pode se conectar a uma federação no Banco de dados SQL do Azure. Consulte as considerações gerais sobre como conectar-se a bancos de dados no Banco de Dados SQL em Diretrizes para conexão com o Banco de Dados SQL do Azure de forma programática.

O estabelecimento de uma conexão com os dados da federação é obtido usando-se a instrução USE FEDERATION (Azure SQL Database). Todas as conexões são estabelecidas com o banco de dados que contém a federação (raiz da federação), o qual roteia a conexão para o membro apropriado da federação. O membro da federação para o qual a conexão é roteada é determinado pelo valor de chave da federação, que é especificado como parte da instrução USE FEDERATION.

WarningAviso
As federações serão suspensas com as camadas de serviço Web e Business do banco de dados SQL do Azure. (Consulte Perguntas frequentes sobre a descontinuação das edições Web e Business). Considere o uso de escala elástica para banco de dados do SQL Azure para criar uma solução expandida e fragmentada de sua camada de dados. Para experimentar, consulte Introdução à visualização de escala elástica do banco de dados SQL do Azure.

O exemplo a seguir é um aplicativo de console que se conecta a um Banco de Dados SQL com federação. O aplicativo de console executa as seguintes etapas:

  1. Primeiro, o aplicativo de console usa um objeto SQLConnectionStringBuilder para construir uma cadeia de conexão.

  2. Em seguida, o aplicativo de console se conecta à raiz da federação para recuperar e exibir os dados do membro da federação.

  3. Finalmente, o aplicativo de console se conecta à um membro da federação e conta as linhas do membro da federação.

Para usar este exemplo no Visual Studio com o servidor Banco de Dados SQL, execute as seguintes etapas:

  1. Abra o Visual Studio e crie um novo aplicativo de console.

  2. Substitua o código do arquivo de programa pelo código deste exemplo.

  3. Substitua o valor dos oito membros de dados estáticos.

  4. Execute o código.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace ConnectToFederationConsoleApp
{
    class Program
    {
        private static string federationName = "<ProvideFederationName>";
        private static string distributionName = "<ProvideDistributionName>";
        private static long federationKey = <ProvideAValue>;
        private static string tableName = "<ProvideTableName>";

        static void Main(string[] args)
        {
            SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
            csb.DataSource = dataSource;
            csb.InitialCatalog = databaseName;
            csb.Encrypt = true;
            csb.TrustServerCertificate = true;
            csb.UserID = userName;
            csb.Password = password;

            try
            {
                using (SqlConnection connection = new SqlConnection(csb.ToString()))
                {
                    connection.Open();

                    using (SqlCommand command = connection.CreateCommand())
                    {
                        // Route the connection to Federation Root
                        command.CommandText = "USE FEDERATION ROOT WITH RESET";
                        command.ExecuteNonQuery();

                        //Retrieve Federation Root metadata
                        command.CommandText = @"SELECT f.name, fmc.federation_id, fmc.member_id, fmc.range_low, fmc.range_high " +
                                                            "FROM sys.federations f " +
                                                            "JOIN sys.federation_member_distributions fmc " +
                                                            "ON f.federation_id=fmc.federation_id " +
                                                            "ORDER BY fmc.federation_id, fmc.range_low, fmc.range_high";;
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            Console.WriteLine("name\t\tfederation_id\tmember_id\trange_low\trange_high");
                            while (reader.Read())
                            {
                                Console.WriteLine(reader["name"] + "\t" + 
                                    reader["federation_id"] + "\t" + 
                                    reader["member_id"] + "\t" + 
                                    reader["range_low"] + "\t" + 
                                    reader["range_high"] + "\t");
                            }
                            Console.WriteLine();
                        }

                        // Route the connection to a federation member
                        command.CommandText = "USE FEDERATION " + federationName + "(" + distributionName + "=" + federationKey + ") WITH RESET, FILTERING = OFF";
                        command.ExecuteNonQuery();
                        command.CommandText = @"SELECT * FROM " + tableName;

                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            int iRowCount = 0;
                            while (reader.Read())
                            {
                                iRowCount++;
                            }
                            Console.WriteLine("There are {0} rows in this federation member with the federation key value of {1}.", iRowCount, federationKey.ToString());
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine( String.Format("Error:\r\n{0}\r\n{1}\r\n{2}", ex.Source, ex.Message, ex.StackTrace));
            }

            Console.WriteLine("\nPress ENTER to continue ... ");
            Console.ReadLine();

        }
    }
}

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2015 Microsoft