Kom igång med frågor mellan databaser (vertikal partitionering) (förhandsversion)
Gäller för:Azure SQL Database
Med elastisk databasfråga (förhandsversion) för Azure SQL Database kan du köra T-SQL-frågor som sträcker sig över flera databaser med en enda anslutningspunkt. Den här artikeln gäller för vertikalt partitionerade databaser.
När du är klar får du lära dig hur du konfigurerar och använder en Azure SQL Database för att utföra frågor som omfattar flera relaterade databaser.
Mer information om frågefunktionen för elastisk databas finns i Översikt över elastiska databasfrågor i Azure SQL Database.
Förutsättningar
ÄNDRA BEHÖRIGHETEN EXTERN DATAKÄLLA KRÄVS. Den här behörigheten ingår i alter database-behörigheten. ÄNDRA EVENTUELLA BEHÖRIGHETER FÖR EXTERN DATAKÄLLA krävs för att referera till den underliggande datakällan.
Skapa exempeldatabaserna
Börja med att skapa två databaser, Kunder och Beställningar, antingen på samma eller på olika servrar.
Kör följande frågor i databasen Beställningar för att skapa tabellen OrderInformation och mata in exempeldata.
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)
Kör nu följande fråga i databasen Kunder för att skapa tabellen CustomerInformation och mata in exempeldata.
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')
Skapa databasobjekt
Databasomfattande huvudnyckel och autentiseringsuppgifter
Öppna SQL Server Management Studio eller SQL Server Data Tools i Visual Studio.
Anslut till databasen Orders och kör följande T-SQL-kommandon:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master_key_password>'; CREATE DATABASE SCOPED CREDENTIAL ElasticDBQueryCred WITH IDENTITY = '<username>', SECRET = '<password>';
"master_key_password" är ett starkt lösenord som du väljer för att kryptera autentiseringsuppgifterna för anslutningen. Användarnamnet och lösenordet ska vara användarnamnet och lösenordet som används för att logga in i kunddatabasen (skapa en ny användare i kunddatabasen om det inte redan finns). Autentisering med Microsoft Entra-ID (tidigare Azure Active Directory) med elastiska frågor stöds inte för närvarande.
Externa datakällor
Om du vill skapa en extern datakälla kör du följande kommando i databasen Beställningar:
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
(TYPE = RDBMS,
LOCATION = '<server_name>.database.windows.net',
DATABASE_NAME = 'Customers',
CREDENTIAL = ElasticDBQueryCred
) ;
Externa tabeller
Skapa en extern tabell i databasen Beställningar, som matchar definitionen av tabellen CustomerInformation:
CREATE EXTERNAL TABLE [dbo].[CustomerInformation]
( [CustomerID] [int] NOT NULL,
[CustomerName] [varchar](50) NOT NULL,
[Company] [varchar](50) NOT NULL)
WITH
( DATA_SOURCE = MyElasticDBQueryDataSrc)
Köra en T-SQL-exempelfråga för elastisk databas
När du har definierat din externa datakälla och dina externa tabeller kan du nu använda T-SQL för att fråga dina externa tabeller. Kör den här frågan i databasen Beställningar:
SELECT OrderInformation.CustomerID, OrderInformation.OrderId, CustomerInformation.CustomerName, CustomerInformation.Company
FROM OrderInformation
INNER JOIN CustomerInformation
ON CustomerInformation.CustomerID = OrderInformation.CustomerID
Kostnad
För närvarande ingår den elastiska databasfrågefunktionen i kostnaden för din Azure SQL Database.
Prisinformation finns i Prissättning för SQL Database.
Nästa steg
- En översikt över elastisk fråga finns i Översikt över elastiska frågor.
- Syntax- och exempelfrågor för vertikalt partitionerade data finns i Köra frågor mot vertikalt partitionerade data.
- En horisontell partitioneringsguide (horisontell partitionering) finns i Komma igång med elastisk fråga för horisontell partitionering (horisontell partitionering).
- Syntax- och exempelfrågor för horisontellt partitionerade data finns i Fråga vågrätt partitionerade data.
- Se sp_execute_remote för en lagrad procedur som kör en Transact-SQL-instruktion på en enda fjärransluten Azure SQL Database eller uppsättning databaser som fungerar som shards i ett horisontellt partitioneringsschema.