영업: 1-800-867-1380

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

업데이트 날짜: 2015년 7월

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

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

Warning경고
페더레이션은 Azure SQL 데이터베이스의 웹 및 비즈니스 서비스 계층에서 사용되지 않습니다. (Web 및 Business 버전 지원 종료 FAQ 참조) Azure SQL 데이터베이스의 탄력적인 확장을 사용하여 데이터 계층의 분할된 확장 솔루션을 제작하는 것이 좋습니다. 이를 시도하려면 Azure SQL 데이터베이스 탄력적인 확장 미리 보기 시작을 참조하세요.

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

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

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

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

이동합니다. 서버를 사용하여 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자 남음)
의견을 주셔서 감사합니다.
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft