Introduzione alle query tra database (partizionamento verticale) (anteprima)Get started with cross-database queries (vertical partitioning) (preview)

La query del database elastico (anteprima) per il database SQL di Azure consente di eseguire query T-SQL che si estendono a più database usando un unico punto di connessione.Elastic database query (preview) for Azure SQL Database allows you to run T-SQL queries that span multiple databases using a single connection point. Questo argomento si applica ai database con partizionamento verticale.This topic applies to vertically partitioned databases.

Al termine, si apprenderà come configurare e usare un database SQL di Azure per eseguire query che coinvolgono più database correlati.When completed, you will: learn how to configure and use an Azure SQL Database to perform queries that span multiple related databases.

Per altre informazioni sulla funzionalità di query del database elastico, vedere Panoramica delle query su database elastico del database SQL di Azure.For more information about the elastic database query feature, please see Azure SQL Database elastic database query overview.

PrerequisitiPrerequisites

L'utente deve disporre dell'autorizzazione ALTER ANY EXTERNAL DATA SOURCE.You must possess ALTER ANY EXTERNAL DATA SOURCE permission. Questa autorizzazione è inclusa nell'autorizzazione ALTER DATABASE.This permission is included with the ALTER DATABASE permission. Per il riferimento all'origine dati sottostante sono necessarie autorizzazioni ALTER ANY EXTERNAL DATA SOURCE.ALTER ANY EXTERNAL DATA SOURCE permissions are needed to refer to the underlying data source.

Creare i database di esempioCreate the sample databases

Per iniziare, è necessario creare due database, Customers e Orders, in server logici uguali o diversi.To start with, we need to create two databases, Customers and Orders, either in the same or different logical servers.

Eseguire le query seguenti sul database Orders per creare la tabella OrderInformation e inserire i dati di esempio.Execute the following queries on the Orders database to create the OrderInformation table and input the sample data.

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) 

Eseguire quindi la query seguente sul database Customers per creare la tabella CustomerInformation e inserire i dati di esempio.Now, execute following query on the Customers database to create the CustomerInformation table and input the sample data.

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') 

Creare oggetti di databaseCreate database objects

Chiave master e credenziali con ambito databaseDatabase scoped master key and credentials

  1. Apri SQL Server Management Studio e SQL Server Data Tools in Visual StudioOpen SQL Server Management Studio or SQL Server Data Tools in Visual Studio.
  2. Connettersi al database Orders ed eseguire i comandi T-SQL seguenti:Connect to the Orders database and execute the following T-SQL commands:

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

    Il nome utente e la password devono corrispondere al nome utente e alla password usati per l'accesso al database Customers.The "username" and "password" should be the username and password used to login into the Customers database. L'autenticazione tramite Azure Active Directory con query elastiche non è attualmente supportata.Authentication using Azure Active Directory with elastic queries is not currently supported.

DROP EXTERNAL DATA SOURCEExternal data sources

Per creare un'origine dati esterna, eseguire il comando seguente sul database Orders:To create an external data source, execute the following command on the Orders database:

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

Tabelle esterneExternal tables

Creare una tabella esterna nel database Orders che corrisponda alla definizione della tabella CustomerInformation:Create an external table on the Orders database, which matches the definition of the CustomerInformation table:

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

Eseguire una query di esempio elastica database T-SQLExecute a sample elastic database T-SQL query

Dopo aver definito l'origine dati esterna e le tabelle esterne, è possibile usare T-SQL per eseguire query nelle tabelle esterne.Once you have defined your external data source and your external tables you can now use T-SQL to query your external tables. Eseguire questa query nel database Orders:Execute this query on the Orders database:

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

CostiCost

Attualmente, la funzionalità di query del database elastico è compresa nel costo del database SQL di Azure.Currently, the elastic database query feature is included into the cost of your Azure SQL Database.

Per informazioni sui prezzi, vedere Database SQL - Prezzi.For pricing information see SQL Database Pricing.

Passaggi successiviNext steps