영업: 1-800-867-1380

방법: Azure SQL 데이터베이스의 페더레이션에 연결

업데이트 날짜: 2015년 1월

이 항목에서는 Azure SQL 데이터베이스에서 페더레이션에 연결하는 방법에 대해 설명합니다. SQL 데이터베이스에서 데이터베이스에 연결할 때 고려해야 할 일반적인 사항은 프로그래밍 방식으로 Azure SQL 데이터베이스에 연결하기 위한 지침를 참조하십시오.

USE FEDERATION (Azure SQL Database) 문을 사용하여 페더레이션의 데이터에 연결을 설정합니다. 모든 연결은 페더레이션이 포함된 데이터베이스(페더레이션 루트)에 설정됩니다. 페더레이션 루트는 적절한 페더레이션 멤버로 연결을 라우팅합니다. 연결이 라우팅되는 페더레이션 멤버는 USE FEDERATION 문의 일부로 지정된 페더레이션 키 값으로 결정됩니다.

Important중요
현재 페더레이션 구현은 Web 및 Business 서비스 계층과 함께 지원이 중단될 예정입니다. Azure SQL 데이터베이스용 Elastic Scale을 사용하여 Azure SQL 데이터베이스에서 분할된 확장 솔루션을 빌드하는 것이 좋습니다. 평가판을 사용하려면 Azure SQL 데이터베이스 Elastic Scale 미리 보기 시작을 참조하세요.

다음 예제는 페더레이션이 포함된 SQL 데이터베이스에 연결하는 콘솔 응용 프로그램입니다. 콘솔 응용 프로그램에서는 다음 단계를 수행합니다.

  1. 먼저 콘솔 응용 프로그램에서는 SQLConnectionStringBuilder 개체를 사용하여 연결 문자열을 생성합니다.

  2. 그런 다음 콘솔 응용 프로그램에서는 페더레이션 루트에 연결하여 페더레이션 멤버 데이터를 검색하고 표시합니다.

  3. 마지막으로 콘솔 응용 프로그램에서는 페더레이션 멤버에 연결하여 페더레이션 멤버의 행을 셉니다.

SQL 데이터베이스 서버를 사용하여 Visual Studio에서 이 예제를 사용하려면 다음 단계를 수행합니다.

  1. Visual Studio를 열고 새 콘솔 응용 프로그램을 만듭니다.

  2. 프로그램 파일의 코드를 이 예제의 코드로 바꿉니다.

  3. 8개의 정적 데이터 멤버 값을 바꿉니다.

  4. 코드를 실행합니다.


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();

        }
    }
}

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2015 Microsoft