開始使用跨資料庫查詢 (垂直資料分割) (預覽)

適用于:Azure SQL資料庫

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

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

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

必要條件

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

建立範例資料庫

開始使用前,請在相同或不同的伺服器中,建立兩個資料庫「客戶」和「其他」。

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. 連接至 Orders 資料庫,並執行下列 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 資料庫中沒有的話,請建立新的使用者)。 目前不支援使用 Azure Active Directory 與彈性查詢進行驗證。

外部資料來源

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

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

外部資料表

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

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

Cost

目前,彈性資料庫查詢功能算在 Azure SQL Database 的成本內。

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

下一步