共用方式為


開始使用跨資料庫查詢 (垂直資料分割) \(部分機器翻譯\)

適用於:Azure SQL 資料庫

Azure SQL 資料庫 的彈性資料庫查詢(預覽版)可讓您使用單一連接點執行跨越多個資料庫的 T-SQL 查詢。 本文適用於 垂直分割的資料庫

完成時,您將:瞭解如何設定及使用 Azure SQL 資料庫 來執行跨越多個相關資料庫的查詢。

如需彈性資料庫查詢功能的詳細資訊,請參閱 Azure SQL 資料庫 彈性資料庫查詢概觀

必要條件

要求 ALTER ANY EXTERNAL DATA SOURCE 權限。 這個權限包含在 ALTER DATABASE 權限中。 需有 ALTER ANY EXTERNAL DATA SOURCE 權限,才能參考基礎資料來源。

建立範例資料庫

若要從 開始,請在相同或不同的伺服器中建立兩個資料庫: CustomersOrders

Orders 資料庫上執行下列查詢,以建立 OrderInformation 數據表並輸入範例數據。

CREATE TABLE [dbo].[OrderInformation](
    [OrderID] [int] NOT NULL,
    [CustomerID] [int] NOT NULL
    )
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (123, 1)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (149, 2)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (857, 2)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (321, 1)
INSERT INTO [dbo].[OrderInformation] ([OrderID], [CustomerID]) VALUES (564, 8)

現在,在 Customers 資料庫上執行下列查詢,以建立 CustomerInformation 數據表並輸入範例數據。

CREATE TABLE [dbo].[CustomerInformation](
    [CustomerID] [int] NOT NULL,
    [CustomerName] [varchar](50) NULL,
    [Company] [varchar](50) NULL
    CONSTRAINT [CustID] PRIMARY KEY CLUSTERED ([CustomerID] ASC)
)
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (1, 'Jack', 'ABC')
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (2, 'Steve', 'XYZ')
INSERT INTO [dbo].[CustomerInformation] ([CustomerID], [CustomerName], [Company]) VALUES (3, 'Lylla', 'MNO')

建立資料庫物件

資料庫範圍的主要金鑰和認證

  1. 在 Visual Studio 中開啟 SQL Server Management Studio 或 SQL Server Data Tools。

  2. 連結至 ElasticDBQuery 資料庫,並執行下列 T-SQL 命令:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>';
    CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred
    WITH IDENTITY = '<username>',
    SECRET = '<password>';  
    

    「master_key_password」是您選擇用來加密連線認證的強密碼。 「username」 和 「password」 應該是用來登入 Customers 資料庫的使用者名稱和密碼(如果客戶資料庫中還沒有使用者,請在 Customers 資料庫中建立新的使用者)。 目前不支援使用 Microsoft Entra ID(先前稱為 Azure Active Directory)搭配彈性查詢的驗證。

外部資料來源

若要建立外部資料來源,請在 ElasticDBQuery 資料庫上執行下列命令:

CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
    (TYPE = RDBMS,
    LOCATION = '<server_name>.database.windows.net',
    DATABASE_NAME = 'Customers',
    CREDENTIAL = ElasticDBQueryCred
) ;

外部表格

在 Orders 資料庫上建立外部數據表,其符合 CustomerInformation 數據表的定義:

CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
    [CustomerName] [varchar](50) NOT NULL,
    [Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)

執行範例彈性資料庫 T-SQL 查詢

一旦您已定義外部資料來源和外部資料表,現在您可以對外部資料表使用完整的 T-SQL。 在 Orders 資料庫上執行此查詢:

SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID

成本

目前,彈性資料庫查詢功能會包含在 Azure SQL 資料庫的成本中。

如需價格資訊,請參閱 SQL Database 價格

下一步