此页面有用吗?
您对此内容的反馈非常重要。 请告诉我们您的想法。
更多反馈?
1500 个剩余字符
SQL Database 联合教程 -- DBA

SQL Database 联合教程 -- DBA

更新时间: 2015年3月

联合是 Microsoft Azure SQL Database 中用于构建向外扩展数据库解决方案的方法之一。联合是数据库中的对象,通过这些对象,应用程序可以向外扩展其部分或所有数据。

Warning警告
联合将随 Azure SQL 数据库中的 Web 和企业服务层一起停用。(请参阅Web 和企业版停用常见问题。)请考虑使用 Azure SQL Database 弹性缩放来为数据层构建分片的横向扩展解决方案。若要尝试该操作,请参阅 Get Started with Azure SQL Database Elastic Scale Preview(Azure SQL Database 弹性扩展预览版入门)。

本教程演示使用 Azure SQL Database (SSMS) 创建 SQL Server Management Studio 联合、创建和填充表以及执行拆分操作的过程。在每个主要过程后,你都要复查元数据以便了解每个操作的结果。

在开始本教程之前,你必须完成以下步骤:

虽然本教程说明了如何使用 SSMS,但你还可以选择使用 Azure 管理门户

连接到 SQL Database 服务器

  1. 打开 SQL Server Management Studio。

  2. 在“连接到数据库引擎”对话框中,键入或选择以下值:

     

    Name

    服务器名称

    <提供服务器名称>

    身份验证

    SQL Server 身份验证

    Login

    <提供用户 ID>

    密码

    <提供密码>

  3. 单击?连接?。

若要创建联合,你首先要创建一个数据库作为联合根数据库。该联合根是用于保存联合目录的初始数据库。

创建联合根数据库

  1. 在对象资源管理器中,展开“数据库”,再展开“系统数据库”,然后单击 master

  2. 单击“新建查询”

  3. 确认 SQL 编辑器工具栏上的“可用数据库”显示 master

  4. 在查询编辑器中,复制并粘贴以下 T-SQL 语句:

    -- Create federation root database
    CREATE DATABASE [AdventureWorks1] 
    GO
    
    
  5. 从 SQL 编辑器命令栏中,单击“执行”。请确保“消息”窗格显示“命令已成功完成”

  6. 在对象资源管理器中,右键单击“数据库”,然后单击“刷新”。你应该看到新的数据库在那里列出。

一个联合是由某一联合方案定义的数据库分区的集合。联合方案定义了一个联合分发键,该键可确定联合内部各分区之间的数据分发。你可以在一个联合根内创建多个联合,但每个联合只能具有一个方案。若要创建联合方案,你必须首先连接到联合根数据库,然后执行 CREATE FEDERATION 命令。在本教程中,你将创建一个名为 CustomerFederation 的联合,它具有 cid 的分发名称,后跟 RANGEBIGINT 分区类型。有关联合的其他信息,请参阅 Azure SQL Database 中的联合

创建联合方案

  1. 从 SSMS 中,在查询编辑器(中部窗格)内的任何地方单击。你可以看到 SQL 编辑器工具栏上的按钮将变得可用。

  2. “可用数据库”中,选择你在上一过程中创建的联合根。默认名称是 AdventureWorks1

  3. 清除查询编辑器中的所有文本。

  4. 复制以下语句并将其粘贴到查询编辑器中:

    -- Create federation scheme
    CREATE FEDERATION CustomerFederation(cid BIGINT RANGE)
    GO
    
    
  5. 从 SQL 编辑器命令栏中,单击“执行”。并且确保“消息”窗格显示“命令已成功完成”。

  6. 在对象资源管理器中,右键单击“数据库”,然后单击“刷新”。展开 AdventureWorks1,然后展开“联合”。你将看到一个名为 CustomerFederation 的新联合对象。

为了更好地理解该方案,你可以连接到联合根和联合成员,以便看一下元数据。

查看联合根元数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the federation root
    USE FEDERATION ROOT WITH RESET
    GO
    -- View the federation root metadata
    SELECT db_name() [db_name]
    SELECT * FROM sys.federations
    SELECT * FROM sys.federation_distributions
    SELECT * FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”

    联合根元数据

    联合的 USE 语句将连接更改为联合根或联合成员之一。上面的 USE 语句将连接路由到联合根。

    第一个 SELECT 语句显示联合根数据库名称。将有一个联合以及一个联合成员。第一个联合成员与联合共享同一 ID。SPLIT 操作所创建的联合成员将具有新的唯一联合 ID。

    请注意,联合成员的范围是从 -9223372036854775808 (range_low) 到 NULL (range_high)。在你执行 SPLIT 操作时,该范围将拆分为两个部分。有一个名为 cid 的联合分发。之后,你将联合键与该联合分发进行匹配。

查看联合成员元数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the one federation member (aka shard)
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- View the federation member metadata
    SELECT db_name() [db_name]
    SELECT * FROM sys.federations
    SELECT * FROM sys.federation_distributions
    SELECT * FROM sys.federation_member_distributions
    -- Federatation ranges
    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;
    GO
    
    
    注意:使用 FILTERING=ON 子句可以连接到特定的原子单元。FILTERING=OFF 子句允许连接到包含其范围内的特定键值的联合成员。

  4. 从 SQL 编辑器命令栏中,单击“执行”

    联合成员元数据

    USE 语句将连接仅路由到联合成员。cid=100 是该范围中的一个值。

    请注意,该数据库名称以“system_”和 GUID 号开头。SPLIT 操作完成后,你将执行相同的查询。每次你执行 SPLIT 操作时,都将创建两个新的联合成员以便替换现有联合成员。有关 SPLIT 操作的详细信息,请参阅联合重新分区操作:执行数据库 SPLIT

到现在为止,你已创建了一个联合。下一步是创建一个联合表,将数据插入该表中,然后执行 SPLIT 操作。在创建联合表之前,必须首先将连接更改为联合成员。

在联合中创建表

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the one federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Table [dbo].[Customer]
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[Customer](
    [CustomerID] [bigint] NOT NULL,
    [Title] [nvarchar](8) NULL,
    [FirstName] [nvarchar](50) NOT NULL,
    [MiddleName] [nvarchar](50) NULL,
    [LastName] [nvarchar](50) NOT NULL,
    [Suffix] [nvarchar](10) NULL,
    [CompanyName] [nvarchar](128) NULL,
    [SalesPerson] [nvarchar](256) NULL,
    [EmailAddress] [nvarchar](50) NULL,
    [Phone] [nvarchar](25) NULL,
     CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
    (
    [CustomerID] ASC
    ) 
    )FEDERATED ON (cid=CustomerID)
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。并且确保“消息”窗格显示“命令已成功完成”

USE 语句中,cid=100 是有效的 BIGINT 值。在 CREATE TABLE 语句中,CustomerID 列映射到联合分发键。

填充表

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Insert data
    INSERT INTO [dbo].[Customer]
               ([CustomerID]
               ,[Title]
               ,[FirstName]
               ,[MiddleName]
               ,[LastName]
               ,[Suffix]
               ,[CompanyName]
               ,[SalesPerson]
               ,[EmailAddress]
               ,[Phone])
         VALUES
    (56, 'Mr.', 'Brian', '', 'Groth', '', 'Latest Accessories Sales', 'adventure-works\david8', 'brian5@adventure-works.com', '461-555-0118'),
    (57, 'Ms.', 'Judy', 'R.', 'Lundahl', '', 'Leading Sales & Repair', 'adventure-works\jillian0', 'judy1@adventure-works.com', '260-555-0130'),
    (58, 'Mr.', 'Peter', '', 'Kurniawan', '', 'Largest Bike Store', 'adventure-works\jillian0', 'peter4@adventure-works.com', '436-555-0160'),
    (59, 'Mr.', 'Douglas', '', 'Groncki', '', 'Locks Company', 'adventure-works\shu0', 'douglas2@adventure-works.com', '385-555-0140'),
    (60, 'Mr.', 'Sean', 'J.', 'Lunt', '', 'Main Bicycle Services', 'adventure-works\linda3', 'sean4@adventure-works.com', '183-555-0111'),
    (61, 'Mr.', 'Jeffrey', '', 'Kurtz', '', 'Many Bikes Store', 'adventure-works\shu0', 'jeffrey3@adventure-works.com', '452-555-0179'),
    (64, 'Mr.', 'Vamsi', '', 'Kuppa', '', 'Metal Clearing House', 'adventure-works\jos‚1', 'vamsi1@adventure-works.com', '290-555-0196'),
    (65, 'Ms.', 'Jane', 'P.', 'Greer', '', 'Metro Manufacturing', 'adventure-works\jos‚1', 'jane2@adventure-works.com', '737-555-0163'),
    (66, 'Mr.', 'Alexander', 'J.', 'Deborde', '', 'Neighborhood Store', 'adventure-works\garrett1', 'alexander1@adventure-works.com', '394-555-0176'),
    (70, 'Mr.', 'Deepak', '', 'Kumar', '', 'Outdoor Aerobic Systems Company', 'adventure-works\jae0', 'deepak0@adventure-works.com', '1 (11) 500 555-0122'),
    (73, 'Ms.', 'Margaret', 'T.', 'Krupka', '', 'Outdoor Sports Supply', 'adventure-works\pamela0', 'margaret1@adventure-works.com', '107-555-0132'),
    (74, 'Mr.', 'Christopher', 'M.', 'Bright', '', 'Parcel Express Delivery Service', 'adventure-works\david8', 'christopher2@adventure-works.com', '162-555-0166'),
    (75, 'Ms.', 'Aidan', '', 'Delaney', '', 'Paint Supply', 'adventure-works\jillian0', 'aidan0@adventure-works.com', '358-555-0188'),
    (76, 'Mr.', 'James', 'J.', 'Krow', '', 'Out-of-the-Way Hotels', 'adventure-works\jillian0', 'james11@adventure-works.com', '265-555-0190'),
    (77, 'Mr.', 'Michael', '', 'Brundage', '', 'Mechanical Products Ltd.', 'adventure-works\shu0', 'michael13@adventure-works.com', '128-555-0148'),
    (78, 'Mr.', 'Stefan', '', 'Delmarco', '', 'Preferred Bikes', 'adventure-works\linda3', 'stefan0@adventure-works.com', '819-555-0186'),
    (79, 'Mr.', 'Mitch', '', 'Kennedy', '', 'Reasonable Bicycle Sales', 'adventure-works\shu0', 'mitch0@adventure-works.com', '996-555-0192'),
    (82, 'Mr.', 'James', 'D.', 'Kramer', '', 'Refined Department Stores', 'adventure-works\jos‚1', 'james10@adventure-works.com', '814-555-0130'),
    (83, 'Mr.', 'Eric', 'J.', 'Brumfield', '', 'Requisite Part Supply', 'adventure-works\jos‚1', 'eric3@adventure-works.com', '644-555-0114'),
    (84, 'Ms.', 'Della', 'F.', 'Demott Jr', '', 'Rewarding Activities Company', 'adventure-works\garrett1', 'della0@adventure-works.com', '752-555-0185'),
    (88, 'Ms.', 'Pamala', 'M.', 'Kotc', '', 'Closest Bicycle Store', 'adventure-works\jae0', 'pamala0@adventure-works.com', '1 (11) 500 555-0173'),
    (91, 'Ms.', 'Joy', 'R.', 'Koski', '', 'Scooters and Bikes Store', 'adventure-works\pamela0', 'joy0@adventure-works.com', '810-555-0198'),
    (92, 'Ms.', 'Jovita', 'A.', 'Carmody', '', 'Sports Commodities', 'adventure-works\david8', 'jovita0@adventure-works.com', '646-555-0137'),
    (93, 'Mr.', 'Prashanth', '', 'Desai', '', 'Stationary Bikes and Stands', 'adventure-works\jillian0', 'prashanth0@adventure-works.com', '138-555-0156'),
    (94, 'Mr.', 'Scott', '', 'Konersmann', '', 'Specialty Sports Store', 'adventure-works\jillian0', 'scott6@adventure-works.com', '556-555-0192'),
    (96, 'Ms.', 'Jane', 'N.', 'Carmichael', '', 'Rural Department Store', 'adventure-works\shu0', 'jane0@adventure-works.com', '716-555-0167'),
    (97, 'Ms.', 'Bonnie', 'B.', 'Lepro', '', 'More Bikes!', 'adventure-works\linda3', 'bonnie2@adventure-works.com', '354-555-0130'),
    (99, 'Mr.', 'Eugene', '', 'Kogan', '', 'Mountain Bike Center', 'adventure-works\shu0', 'eugene2@adventure-works.com', '136-555-0134'),
    (100, 'Mr.', 'Kirk', 'T', 'King', '', 'Up-To-Date Sports', 'adventure-works\jos‚1', 'kirk2@adventure-works.com', '979-555-0163'),
    (101, 'Mr.', 'William', 'J.', 'Conner', '', 'Urban Sports Emporium', 'adventure-works\jos‚1', 'william1@adventure-works.com', '383-555-0111'),
    (102, 'Ms.', 'Linda', '', 'Leste', '', 'National Manufacturing', 'adventure-works\garrett1', 'linda7@adventure-works.com', '493-555-0134'),
    (106, 'Ms.', 'Andrea', 'A.', 'Thomsen', '', 'West Side Mart', 'adventure-works\jae0', 'andrea1@adventure-works.com', '1 (11) 500 555-0120'),
    (109, 'Mr.', 'Daniel', 'P.', 'Thompson', '', 'Travel Sports', 'adventure-works\pamela0', 'daniel2@adventure-works.com', '247-555-0197'),
    (110, 'Ms.', 'Kendra', 'N.', 'Thompson', '', 'Vintage Sport Boutique', 'adventure-works\david8', 'kendra0@adventure-works.com', '464-555-0188'),
    (111, 'Mr.', 'Scott', 'A.', 'Colvin', '', 'Westside Cycle Store', 'adventure-works\jillian0', 'scott1@adventure-works.com', '119-555-0144'),
    (168, 'Sr.', 'Luis', '', 'Bonifaz', '', 'Economy Bikes Company', 'adventure-works\linda3', 'luis0@adventure-works.com', '688-555-0113'),
    (169, 'Ms.', 'Brenda', '', 'Diaz', '', 'Downtown Hotel', 'adventure-works\shu0', 'brenda2@adventure-works.com', '147-555-0192'),
    (172, 'Ms.', 'Gabriele', '', 'Dickmann', '', 'Certified Sports Supply', 'adventure-works\jos‚1', 'gabriele0@adventure-works.com', '835-555-0116'),
    (173, 'Mr.', 'Rudolph', 'J.', 'Dillon', 'Sr.', 'Sundry Sporting Goods', 'adventure-works\jos‚1', 'rudolph0@adventure-works.com', '722-555-0169'),
    (174, 'Mr.', 'Michael', 'L.', 'Bohling', '', 'Toy Manufacturing Inc', 'adventure-works\garrett1', 'michael12@adventure-works.com', '838-555-0147'),
    (178, 'Mr.', 'Dick', '', 'Dievendorff', '', 'Rampart Amusement Company', 'adventure-works\jae0', 'dick1@adventure-works.com', '1 (11) 500 555-0193'),
    (180, 'Ms.', 'Nicky', 'E.', 'Chesnut', '', 'Full-Service Bike Store', 'adventure-works\michael9', 'nicky0@adventure-works.com', '264-555-0164'),
    (181, 'Mr.', 'Michael', 'J.', 'Lee', '', 'Family Entertainment Center', 'adventure-works\pamela0', 'michael18@adventure-works.com', '396-555-0139'),
    (182, 'Mr.', 'Stanley', 'A.', 'Alan', 'Jr.', 'Another Bicycle Company', 'adventure-works\david8', 'stanley0@adventure-works.com', '156-555-0126'),
    (183, 'Mr.', 'Yao-Qiang', '', 'Cheng', '', 'This Area Sporting Goods', 'adventure-works\jillian0', 'yao-qiang0@adventure-works.com', '344-555-0181'),
    (184, 'Ms.', 'Marjorie', 'M.', 'Lee', '', 'Go-cart and Bike Specialists', 'adventure-works\jillian0', 'marjorie0@adventure-works.com', '306-555-0166'),
    (185, 'Mr.', 'Sandeep', '', 'Kaliyath', '', 'Weekend Bike Tours', 'adventure-works\shu0', 'sandeep1@adventure-works.com', '495-555-0113'),
    (186, 'Mr.', 'Pei', '', 'Chow', '', 'Thrilling Bike Tours', 'adventure-works\linda3', 'pei0@adventure-works.com', '789-555-0184'),
    (187, 'Mr.', 'Frank', '', 'Campbell', '', 'Trailblazing Sports', 'adventure-works\shu0', 'frank4@adventure-works.com', '491-555-0132'),
    (190, 'Mr.', 'Mark', '', 'Lee', '', 'Racing Partners', 'adventure-works\jos‚1', 'mark5@adventure-works.com', '371-555-0112'),
    (191, 'Ms.', 'Sandra', 'T.', 'Kitt', '', 'Non-Slip Pedal Company', 'adventure-works\jos‚1', 'sandra2@adventure-works.com', '303-555-0117'),
    (192, 'Mr.', 'Hao', '', 'Chen', '', 'Nuts and Bolts Mfg.', 'adventure-works\garrett1', 'hao1@adventure-works.com', '117-555-0173'),
    (196, 'Ms.', 'Jolie', '', 'Lenehan', '', 'Exhibition Showroom', 'adventure-works\jae0', 'jolie0@adventure-works.com', '1 (11) 500 555-0126'),
    (197, 'Ms.', 'Diane', 'F.', 'Krane', '', 'Fabrikam Inc., West', 'adventure-works\michael9', 'diane4@adventure-works.com', '224-555-0126'),
    (198, 'Mr.', 'Payton', 'P.', 'Benson', '', 'Field Trip Inc', 'adventure-works\michael9', 'payton0@adventure-works.com', '528-555-0183'),
    (199, 'Mr.', 'Roger', '', 'Lengel', '', 'Authorized Bike Sales and Rental', 'adventure-works\pamela0', 'roger1@adventure-works.com', '947-555-0143'),
    (200, 'Ms.', 'Peggy', 'J.', 'Justice', '', 'Basic Bike Company', 'adventure-works\david8', 'peggy0@adventure-works.com', '170-555-0189'),
    (201, 'Ms.', 'Edna', 'J.', 'Benson', '', 'Unsurpassed Bikes', 'adventure-works\jillian0', 'edna0@adventure-works.com', '789-555-0189'),
    (202, '', 'A.', 'Francesca', 'Leonetti', '', 'Two-Seater Bikes', 'adventure-works\jillian0', 'a0@adventure-works.com', '645-555-0193'),
    (203, 'Ms.', 'Jean', '', 'Jordan', '', 'Separate Parts Corporation', 'adventure-works\shu0', 'jean3@adventure-works.com', '207-555-0129'),
    (204, 'Mr.', 'Ido', '', 'Ben-Sachar', '', 'Traction Tire Company', 'adventure-works\linda3', 'ido0@adventure-works.com', '973-555-0112'),
    (205, 'Mr.', 'Frank', '', 'Martnez', '', 'Rally Master Company Inc', 'adventure-works\shu0', 'frank5@adventure-works.com', '171-555-0147'),
    (208, 'Mr.', 'Steve', '', 'Masters', '', 'Professional Cyclists', 'adventure-works\jos‚1', 'steve2@adventure-works.com', '154-555-0115'),
    (209, 'Mr.', 'Robert', 'E.', 'Jones', '', 'Purple Bicycle Company', 'adventure-works\jos‚1', 'robert6@adventure-works.com', '595-555-0131'),
    (210, 'Mr.', 'Josh', '', 'Barnhill', '', 'Gasless Cycle Shop', 'adventure-works\garrett1', 'josh0@adventure-works.com', '584-555-0192');
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。确认“消息”窗格显示“(65 row(s) affected)”。

查询联合数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the 1 federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    select count(*) from Customer
    SELECT * FROM Customer order by customerid
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”

CustomerID 的范围是 56 到 210。在 Customer 表中共有 65 条记录。

联合提供在线重新分区操作。使用 SPLIT 操作,你可以跨多个联合成员对一个联合成员进行分区。在执行该 SPLIT 操作时可以不让数据库停止运行。若要拆分某一联合成员,你必须首先连接到该联合成员,然后使用 ALTER FEDERATION 命令。你必须指定要对联合成员进行拆分的位置。在下面的示例中,使用 cid=100。

拆分联合成员

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    --Perform federations SPLIT operation
    USE FEDERATION ROOT WITH RESET
    GO
    ALTER FEDERATION CustomerFederation SPLIT AT (cid=100)
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。并且确保“消息”窗格显示“命令已成功完成”

查看联合根元数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the federation root database
    USE FEDERATION ROOT WITH RESET
    GO
    SELECT * FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。你将在 federation_member_distributions 表中看到 2 条记录,分别针对各联合成员。

查看联合成员元数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the first federation member
    USE FEDERATION CustomerFederation(cid=0) WITH RESET, FILTERING=OFF
    GO
    SELECT db_name() [db_name]
    SELECT * FROM sys.federation_member_distributions
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。该数据库名称与执行 SPLIT 操作前的数据库名称不同。如果你使用了 cid=0,则 CustomerID Low 为 56,CustomerID High 为 99。

查看其他联合成员元数据

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 复制以下语句并将其粘贴到查询编辑器中:

    -- Route connection to the second federation member
    USE FEDERATION CustomerFederation(cid=100) WITH RESET, FILTERING=OFF
    GO
    SELECT db_name() [db_name]
    SELECT * FROM sys.federation_member_distributions
    -- Query customer table for high/low Federated Keys
    SELECT MIN(CustomerID) [CustomerID Low], MAX(CustomerID) [CustomerID High] FROM Customer
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”。确保“消息”窗格显示“查询已成功完成”。CustomerID Low 为 100,CustomerID High 为 210。

若要删除某一联合及其关联数据库,可使用 DROP FEDERATION 语句。

删除联合

  1. 清除查询编辑器中的所有文本。

  2. 确认“可用数据库”显示该联合根数据库。

  3. 在查询编辑器中,复制并粘贴以下 T-SQL 语句:

    USE FEDERATION ROOT WITH RESET
    GO
    DROP FEDERATION CustomerFederation
    GO
    
    
  4. 从 SQL 编辑器命令栏中,单击“执行”

  5. 在对象资源管理器中,右键单击“联合”,然后单击“刷新”。你将看到这些联合成员已删除。

另请参阅

Microsoft 正在进行一项网上调查,以了解您对 MSDN 网站的意见。 如果您选择参加,我们将会在您离开 MSDN 网站时向您显示该网上调查。

是否要参加?
显示:
© 2015 Microsoft