Dela via


SKAPA VEKTORINDEX (Transact-SQL) (Förhandsgranskning)

Gäller för: SQL Server 2025 (17.x) Azure SQL DatabaseSQL database in Microsoft Fabric

Skapa ett ungefärligt index för en vektorkolumn för att förbättra prestanda för närmsta grannsökning. Mer information om hur vektorindexering och vektorsökning fungerar och skillnaderna mellan exakt och ungefärlig sökning finns i Vektorsökning och vektorindex i SQL Database Engine.

Azure SQL-databas och SQL-databas i Fabric

Funktionen är i förhandsvisning. Kontrollera begränsningar och överväganden innan du fortsätter.

Anmärkning

Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

Varning

Utfasningsmeddelande: Vektorindex som skapats med hjälp av en tidigare datastruktur stöds i den aktuella versionen men dras tillbaka i en framtida version. För att säkerställa framtida kompatibilitet och åtkomst till de senaste vektorsökningsfunktionerna migrerar du befintliga vektorindex med hjälp av stegen i avsnittet Migrera från tidigare vektorindexversioner .

Regional tillgänglighet

Den här funktionen distribueras i Azure SQL Database och SQL Database i Microsoft Fabric. Under distributionen kan tillgängligheten och beteendet variera beroende på region och indexversion. Om en funktion eller syntax inte är tillgänglig blir den tillgänglig automatiskt när distributionen slutförs. Aktuell regional tillgänglighetsstatus finns i Funktionstillgänglighet per region.

SQL Server 2025 Förhandsgranskningsfunktion

I SQL Server 2025 är denna funktion i förhandsgranskning och kan ändras. För att kunna använda den här funktionen måste du aktivera PREVIEW_FEATURESden databasomfångsbegränsade konfigurationen.

Kontrollera de aktuella begränsningarna innan du använder den.

Anmärkning

Den senaste versionen av Vector Indexes är endast tillgänglig i Azure SQL Database och SQL Database i Microsoft Fabric för närvarande.

Syntax

Transact-SQL syntaxkonventioner

CREATE VECTOR INDEX index_name
ON object ( vector_column )
[ WITH (
    [ , ] METRIC = { 'cosine' | 'dot' | 'euclidean' }
    [ [ , ] TYPE = 'DiskANN' ]
    [ [ , ] MAXDOP = max_degree_of_parallelism ]
) ]
[ ON { filegroup_name | "default" } ]
[;]

Argumentpunkter

index_name

Namnet på indexet. Indexnamn måste vara unika i en tabell men behöver inte vara unika i en databas. Indexnamn måste följa reglerna för identifierare.

objekt

Tabell där indexet skapas. Det måste vara en bastabell. Vyer, temporära tabeller, både lokala och globala, stöds inte.

vector_column

Kolumn som ska användas för att skapa vektorindexet. Den måste vara av vektortyp .

METRISK

En sträng med namnet på det avståndsmått som ska användas för att beräkna avståndet mellan de två angivna vektorerna. Följande avståndsmått stöds:

  • cosine - Cosinnavstånd
  • euclidean - Euklidiska avstånd
  • dot - (Negativ) Punktprodukt

TYPE

Typen av ANN-algoritm som används för att skapa indexet. Endast DiskANN stöds för närvarande. DiskANN är standardvärdet.

MAXDOP

Åsidosätter maximal grad av parallellitet konfigurationsalternativ för indexåtgärden. Mer information finns i Server-konfiguration: maximal grad av parallellitet. Använd MAXDOP för att begränsa graden av parallellitet och den resulterande resursförbrukningen för en indexgenereringsåtgärd.

max_degree_of_parallelism kan vara:

  • 1

    Undertrycker parallell plangenerering.

  • >1

    Begränsar den maximala grad av parallellitet som används i en parallell indexåtgärd till det angivna talet eller mindre baserat på den aktuella systemarbetsbelastningen.

  • 0 (standardinställning)

    Använder den grad av parallellitet som anges på server-, databas- eller arbetsbelastningsgruppsnivå, såvida den inte minskas baserat på den aktuella systemarbetsbelastningen.

Mer information finns i Konfigurera parallella indexåtgärder.

Anmärkning

Parallella indexåtgärder är inte tillgängliga i varje version av SQL Server. För en lista över funktioner som stöds av SQL Server-utgåvorna, se Editions och stödda funktioner i SQL Server 2022 eller Editions samt stödda funktioner i SQL Server 2025.

Uppgradera vektorindex till den senaste versionen

Viktigt!

Utfasningsmeddelande: Vektorindex som skapats med hjälp av en tidigare datastruktur stöds i den aktuella versionen men dras tillbaka i en framtida version. För att säkerställa framtida kompatibilitet och åtkomst till de senaste vektorsökningsfunktionerna migrerar du befintliga vektorindex med hjälp av stegen nedan.

Nyligen skapade vektorindex använder automatiskt den senaste datastrukturen, vilket ger:

  • Fullständigt DML-stöd: Tar bort den tidigare begränsningen som gjorde vektorindexerade tabeller skrivskyddade när indexet skapades. Nu kan du utföra åtgärderna INSERT, UPDATE, DELETE och MERGE samtidigt som du behåller vektorindexfunktioner med automatiskt indexunderhåll i realtid
  • Iterativ filtrering: Predikat i WHERE-satsen tillämpas under vektorsökningsprocessen, inte efter hämtning
  • Optimizer-driven: Frågeoptimeraren avgör automatiskt om diskANN-indexet eller kNN-sökningen ska användas baserat på frågeegenskaper
  • Avancerad kvantisering: Vektorkvantiseringstekniker har integrerats för att ge bättre lagringseffektivitet och snabbare frågeprestanda, och dessa optimeringar är transparenta för användarna

Mer information om tidigare versionsbegränsningar för vektorindex finns i avsnittet Begränsningar och överväganden.

Migrera från tidigare vektorindexversioner

Vektorindex som skapats med en tidigare version måste tas bort och återskapas för att aktivera de senaste funktionerna. I det här avsnittet beskrivs hur du identifierar, migrerar och verifierar vektorindexversioner.

Steg 1: Identifiera befintliga vektorindex

Använd följande fråga för att identifiera vektorindex som kräver migrering:

SELECT
    i.name AS index_name,
    t.name AS table_name,
    JSON_VALUE(v.build_parameters, '$.Version') AS index_version,
    CASE
        WHEN JSON_VALUE(v.build_parameters, '$.Version') >= '3'
            THEN 'Uses latest version (no migration required)'
        WHEN JSON_VALUE(v.build_parameters, '$.Version') < '3'
            THEN 'Created using an earlier version (migration recommended)'
        ELSE 'Unknown format'
    END AS migration_status
FROM sys.vector_indexes AS v
    INNER JOIN sys.indexes AS i
        ON v.object_id = i.object_id
        AND v.index_id = i.index_id
    INNER JOIN sys.tables AS t
        ON v.object_id = t.object_id
ORDER BY t.name, i.name;
Så här tolkas resultaten

Använder den senaste versionen

  • Stöder redan iterativ filtrering, fullständigt DML-stöd, optimerardriven körning och förbättrad kvantisering
  • Ingen migrering krävs

Skapades med en tidigare version

  • Använder äldre beteende efter filter
  • Stöder inte de senaste vektorsökningsfunktionerna
  • Migrering rekommenderas starkt för att säkerställa framtida kompatibilitet

Steg 2: Släpp och återskapa vektorindexet

Vektorindex som skapats med ett tidigare format kan inte uppgraderas på plats. Om du vill aktivera de senaste DiskANN-funktionerna släpper du och återskapar indexet.

Varning

Tjänstpåverkan: Om du släpper ett vektorindex inaktiveras omedelbart ungefärlig vektorsökning i den berörda tabellen tills indexet återskapas. Planera migreringar under underhållsperioder för produktionssystem.

Ta bort det befintliga indexet
DROP INDEX vec_idx ON dbo.wikipedia_articles;
Återskapa indexet
CREATE VECTOR INDEX vec_idx
    ON dbo.wikipedia_articles (title_vector)
    WITH (
        TYPE = 'DISKANN',
        METRIC = 'COSINE'
    );

Anmärkning

Vektorindex som skapats med den aktuella CREATE VECTOR INDEX instruktionen använder automatiskt det senaste DiskANN-formatet. Inga ytterligare alternativ eller flaggor krävs.

Steg 3: Verifiera indexversionen

När du har återskapat det kontrollerar du att indexet använder den senaste versionen:

SELECT
    i.name AS index_name,
    t.name AS table_name,
    JSON_VALUE(v.build_parameters, '$.Version') AS index_version
FROM sys.vector_indexes AS v
    INNER JOIN sys.indexes AS i
        ON v.object_id = i.object_id
        AND v.index_id = i.index_id
    INNER JOIN sys.tables AS t
        ON v.object_id = t.object_id
WHERE i.name = 'vec_idx';

Kolumnen index_version ska visas 3 för den senaste versionen.

Felbeteende med inkompatibilitet av version

Om du försöker använda parametern TOP_N i VECTOR_SEARCH med ett vektorindex för den senaste versionen returnerar SQL Server följande fel:

Msg 42274, Level 16, State 1
Vector search with version 3 index does not support explicit TOP_N parameter.

Lös det här felet genom att ta bort parametern TOP_N från VECTOR_SEARCH och använda syntaxen SELECT TOP (N) WITH APPROXIMATE i stället. Detaljerad information finns i Fel med äldre syntax.

Begränsningar och överväganden

Tidigare versionsbegränsningar för vektorindex

Tidigare versioner av vektorindex har följande ytterligare begränsningar. Information om hur du kontrollerar indexversionen finns i Verifiera indexversionen.

  • Endast efterfiltrering: Predikat tillämpas endast efter vektorhämtning, inte under sökprocessen. Detta kan resultera i färre rader som returneras än förväntat när filter tillämpas.

  • Skrivskyddade tabeller: Tabeller med vektorindex är skrivskyddade. Inga DML-åtgärder (INSERT, UPDATE, DELETE, MERGE) tillåts när vektorindexet har skapats. Använd konfigurationen ALLOW_STALE_VECTOR_INDEX med databasomfattning för att aktivera DML-åtgärder om du kan tolerera inaktuella sökresultat.

  • Manuell TOP_N justering: Du måste justera parametern TOP_N manuellt för VECTOR_SEARCH att kompensera för efterfiltrering, vilket ofta kräver överdimensionerade värden för att få önskat antal resultat.

Aktuella begränsningar (gäller även för den senaste versionen)

Den aktuella förhandsversionen har följande begränsningar:

  • Vektorindex kan inte partitioneras. Inget partitionsstöd.

  • Tabellen måste ha ett primärnyckelklusterindex.

  • Vektorindex replikeras inte till prenumeranter.

  • Tabeller med vektorindex kan inte trunkeras med .TRUNCATE TABLE Om du vill ta bort alla data släpper du vektorindexet först, trunkerar tabellen, fyller på med minst 100 rader och återskapar sedan indexet. Mer information finns i TRUNKERA TABELLbegränsningar.

  • Vektorindex kan inte distribueras med DacPac eller BACPAC. Vektorindex kräver minst 100 rader med icke-NULL-vektorer när de skapas. När du importerar en databas med DacPac, BACPAC eller import-/exporttjänsten skapar importprocessen schemaobjekt (inklusive vektorindex) innan data läses in, vilket gör att importen misslyckas.

    Lösning: Ta bort vektorindex innan du exporterar databasen och återskapa indexen efter importen.

Minimikrav för data

Vektorindex kräver ett minsta antal rader med icke-NULL-vektorvärden innan indexet kan skapas.

  • Minsta antal rader: Minst 100 rader med icke-NULL-vektorvärden måste finnas i tabellen.
  • Felbeteende: Försök att skapa ett vektorindex i en tabell med färre än 100 rader misslyckas med felet Msg 42266.

Exempelfel:

Msg 42266, Level 16, State 1
Cannot create a vector index. The table contains only 8 rows with non-null vectors, 
but at least 100 are required for vector index creation.

Bästa praxis: Fyll i tabellen med minst 100 rader innan du skapar vektorindexet. För utvecklings- och testscenarier där färre rader behövs VECTOR_SEARCH fungerar utan index med hjälp av en brute force-genomsökningsmetod, även om prestanda försämras med större datamängder.

DML-stöd

När ett DiskANN-vektorindex har skapats med den senaste versionen är tabellen inte längre skrivskyddad. Du kan fritt ändra data med hjälp av DML-åtgärder (Standard Data Manipulation Language) och ändringar återspeglas automatiskt i vektorsökningsresultat.

Den här funktionen gör vektorsökning lämplig för aktiva transaktionsarbetsbelastningar där data ändras över tid.

Beteendeanteckningar

  • DML-åtgärder kräver inte att vektorindexet släpps eller återskapas.
  • Ändringar visas för vektorsökningsfrågor efter transaktionsincheckningarna.
  • Om du vill ersätta storskaliga data (till exempel ta bort de flesta rader och infoga en helt ny uppsättning inbäddningar) bör du överväga att släppa och återskapa vektorindexet efter datainläsningen för att säkerställa optimal sökkvalitet.

Anmärkning

DML-stöd är endast tillgängligt med vektorindex som skapats med den senaste versionen. Tidigare versioner kräver att tabeller är skrivskyddade eller använder ALLOW_STALE_VECTOR_INDEX databasomfattningskonfigurationen.

Övervaka underhåll av vektorindex

Vektorindex utför bakgrundsunderhåll för att införliva DML-ändringar. Använd sys.dm_db_vector_indexes dynamisk hanteringsvy för att övervaka status för indexhälsa och underhållsuppgifter.

Kombinera vektorindex med traditionella index

Vektorindex fungerar tillsammans med traditionella B-trädindex för att ge optimala frågeprestanda. När du använder iterativ filtrering med VECTOR_SEARCHbör du överväga att skapa traditionella index för kolumner som används i filterpredikat.

Detaljerad information om iterativt filtreringsbeteende och hur det skiljer sig från tidigare versioner finns i Iterativt filtreringsbeteende.

Tips/Råd

Frågeoptimeraren väljer automatiskt den bästa körningsstrategin (ungefärligt närmaste grannindex jämfört med kNN-sökning). Använd tabelltipset FORCE_ANN_ONLY för att framtvinga användningen av det ungefärliga närmaste grannindexet. Mer information finns i Tabelltips för vektorsökning.

Exempelscenario:

-- Create vector index for similarity search
CREATE VECTOR INDEX idx_embeddings_vector
ON product_embeddings(embedding)
WITH (METRIC = 'cosine');

-- Create traditional index for filter columns
CREATE NONCLUSTERED INDEX idx_embeddings_filters
ON product_embeddings(category);

Prestandafördelar:

När du kör frågor med iterativ filtrering använder SQL Server-frågeoptimeraren båda indextyperna:

DECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(N'wireless headphones' USE MODEL EmbeddingModel);

SELECT TOP (10) WITH APPROXIMATE
    p.name,
    p.price,
    vs.distance
FROM products p
INNER JOIN VECTOR_SEARCH(
    TABLE = product_embeddings AS e,
    COLUMN = embedding,
    SIMILAR_TO = @qv,
    METRIC = 'cosine'
) AS vs ON p.id = e.product_id
WHERE e.approved = 1             
  AND e.category = 'Electronics'  -- Can use traditional index
ORDER BY vs.distance;

I den här frågan:

  • Vektorindexet identifierar liknande inbäddningar baserat på frågevektorn
  • Det traditionella indexet för (category) filtrerar kandidater effektivt under den iterativa sökprocessen

Den här sammansatta strategin kan förbättra frågeprestanda avsevärt jämfört med att bara använda ett vektorindex, särskilt när filterpredikat har hög selektivitet.

Vägledning för datakvalitet och underhåll för vektorindex

Undvik datauppsättningar med hög duplicerade inbäddningar

Vektorindexering fungerar bäst när inbäddningar representerar olika semantiskt innehåll. Datauppsättningar med en hög andel duplicerade vektorer rekommenderas inte för vektorindexering.

Hög duplicering kan leda till:

  • Dålig resultatkvalitet: Duplicerade vektorer visas upprepade gånger i resultat, vilket trängs ut mer relevanta semantiska matchningar.
  • Minskad effektivitet: Duplicerade inbäddningar förskjuter bättre grannar, vilket minskar nyttan av likhetssökning.
  • Onödig resursanvändning: Vektorindex är dyra att skapa och underhålla, och dubbletter lägger till kostnader utan att lägga till värde.

Bästa praxis: Deduplicera inbäddningar innan du skapar ett vektorindex för att förbättra både prestanda och resultatkvalitet.

Storskaliga scenarier för databyte

Vektorindex stöder infogningar, uppdateringar och borttagningar. Men när de flesta eller alla inbäddningar ersätts – till exempel genom att bädda in en datauppsättning igen med en ny modell – kanske det befintliga indexet inte längre återspeglar den nya datafördelningen.

I storskaliga ersättningsscenarier:

  • Vektorsökningsfrågor fortsätter att returnera giltiga resultat
  • Men kvaliteten på återkallande och rangordning kan försämras eftersom indexstrukturen har skapats för en annan inbäddningsdistribution.

Bästa praxis: När du utför nästan fullständig dataersättning (ta bort och infoga nya inbäddningar) släpper och återskapar du vektorindexet när du har läst in nya data. Om du återskapar indexet ser du till att det är optimerat för den nya inbäddningsdistributionen och återställer förutsägbart frågebeteende.

Kända problemområden

Mer information finns i Kända problem.

Behörigheter

Användaren måste ha ALTER behörighet i tabellen.

Exempel

Ladda ned och importera Wikipedia-artikeln med exempel på vektorinbäddningar .

Exempel förutsätter att det finns en tabell med namnet wikipedia_articles med en kolumn title_vector av typen vector som lagrar rubrikens inbäddningar av Wikipedia-artiklar. title_vector antas vara en inbäddning som genereras med en inbäddningsmodell som text-embedding-ada-002 eller text-embedding-3-small, som returnerar vektorer med 1 536 dimensioner.

Om du vill ha fler exempel, inklusive lösningar från slutpunkt till slutpunkt, går du till GitHub-lagringsplatsen Azure SQL Database Vector Search Samples.

Exempel 1

I följande exempel skapas ett vektorindex i title_vector kolumnen med hjälp av måttet cosine .

CREATE VECTOR INDEX vec_idx
    ON [dbo].[wikipedia_articles] ([title_vector])
        WITH (METRIC = 'COSINE', TYPE = 'DISKANN');

Exempel 2

I följande exempel skapas ett vektorindex i title_vector kolumnen med hjälp av produktmåttet (negativ), dot vilket begränsar parallelliteten till 8 och lagrar vektorn i SECONDARY filgruppen.

CREATE VECTOR INDEX vec_idx
    ON [dbo].[wikipedia_articles] ([title_vector])
        WITH (METRIC = 'DOT', TYPE = 'DISKANN', MAXDOP = 8)
    ON [SECONDARY];

Exempel 3

Ett grundläggande exempel från slutpunkt till slutpunkt med hjälp av CREATE VECTOR INDEX och den relaterade VECTOR_SEARCH funktionen. Inbäddningarna hånas. I ett verkligt scenario genereras inbäddningar med hjälp av en inbäddningsmodell och AI_GENERATE_EMBEDDINGS, eller ett externt bibliotek som OpenAI SDK.

Anmärkning

De senaste versionsvektorindexen kräver minst 100 rader data innan index skapas. Det här exemplet infogar 100 rader för att uppfylla det här kravet. Mer information finns i Minimikrav för data.

Följande kodblock visar CREATE VECTOR INDEX med falska inbäddningar:

  1. Aktiverar förhandsgranskningsfunktionen (krävs endast för SQL Server 2025, behövs inte för Azure SQL Database eller SQL Database i Fabric).
  2. Skapa en exempeltabell dbo.Articles med en kolumn embedding med datatypsvektor(5).
  3. Infoga 100 rader med exempeldata med falska inbäddningsdata.
  4. Skapa ett vektorindex på dbo.Articles.embedding.
  5. Demonstrera vektorlikhetssökningen VECTOR_SEARCH med funktionen.
-- Step 0: Enable Preview Feature (SQL Server 2025 only)
ALTER DATABASE SCOPED CONFIGURATION
SET PREVIEW_FEATURES = ON;
GO

-- Step 1: Create a sample table with a VECTOR(5) column
CREATE TABLE dbo.Articles
(
    id INT PRIMARY KEY,
    title NVARCHAR(100),
    content NVARCHAR(MAX),
    embedding VECTOR(5) -- mocked embeddings
);
GO

-- Step 2: Insert sample data (100 rows required for latest version indexes)
INSERT INTO Articles (id, title, content, embedding)
SELECT
    value AS id,
    'Article ' || [value],
    'Content for article ' || [value],
    CAST(JSON_ARRAY(
        CAST(value * 0.01 AS FLOAT),
        CAST(value * 0.02 AS FLOAT),
        CAST(value * 0.03 AS FLOAT),
        CAST(value * 0.04 AS FLOAT),
        CAST(value * 0.05 AS FLOAT)
    ) AS VECTOR(5))
FROM GENERATE_SERIES(1, 100);
GO

-- Step 3: Create a vector index on the embedding column
CREATE VECTOR INDEX vec_idx ON Articles(embedding)
WITH (METRIC = 'cosine', TYPE = 'diskann');
GO

-- Step 4: Perform a vector similarity search
DECLARE @qv VECTOR(5) = '[0.3, 0.3, 0.3, 0.3, 0.3]';
SELECT TOP(3) WITH APPROXIMATE
    t.id,
    t.title,
    t.content,
    s.distance
FROM
    VECTOR_SEARCH(
        TABLE = Articles AS t,
        COLUMN = embedding,
        SIMILAR_TO = @qv,
        METRIC = 'cosine'
    ) AS s
ORDER BY s.distance, t.title;

Syntaxen för frågor beror på vektorindexversionen:

Vektorindexversion Syntaxexempel
Senaste versionen Använd SELECT TOP (N) WITH APPROXIMATE utan TOP_N parameter
Tidigare versioner (inaktuella) Använda TOP_N parametern i VECTOR_SEARCH funktionen

För tidigare versionsindex (inaktuell syntax):

DECLARE @qv VECTOR(5) = '[0.3, 0.3, 0.3, 0.3, 0.3]';
SELECT TOP(3)
    t.id,
    t.title,
    t.content,
    s.distance
FROM
    VECTOR_SEARCH(
        TABLE = Articles AS t,
        COLUMN = embedding,
        SIMILAR_TO = @qv,
        METRIC = 'cosine',
        TOP_N = 3
    ) AS s
ORDER BY s.distance, t.title;

Exempel 4: Arbeta med DML-åtgärder

I följande exempel visas DML-åtgärder i en tabell med ett vektorindex som skapats med den senaste versionen.

Ta bort rader

Om du tar bort rader tas de bort från både tabell- och vektorsökningsresultaten.

DELETE FROM dbo.wikipedia_articles
WHERE id = 12345;

När borttagningen är klar visas inte längre den borttagna raden i vektorsökningsfrågor.

Infoga nya rader

Du kan infoga nya rader med inbäddningar och de blir omedelbart sökbara utan att indexet återskapas.

INSERT INTO dbo.wikipedia_articles (id, title, title_vector)
VALUES (
    99999,
    N'Quantum Computing Basics',
    AI_GENERATE_EMBEDDINGS(N'Quantum Computing Basics' USE MODEL Ada2Embeddings)
);

Nyligen infogade inbäddningar införlivas automatiskt i vektorindexet och kan returneras av efterföljande vektorsökningsfrågor.

Uppdatera befintliga rader

Uppdatering av vektor- eller icke-vektorkolumner stöds fullt ut.

DECLARE @new_embedding VECTOR(1536);
SET @new_embedding = AI_GENERATE_EMBEDDINGS(N'Updated article title' USE MODEL Ada2Embeddings);

UPDATE dbo.wikipedia_articles
SET title_vector = @new_embedding,
    title = N'Updated article title'
WHERE id = 50000;

Om en vektorkolumn uppdateras uppdateras indexet i enlighet med detta, så framtida vektorsökningar använder den nya inbäddningen.

Använda MERGE för komplexa åtgärder

Med instruktionen MERGE kan du utföra åtgärder för att infoga, uppdatera och ta bort i en enda instruktion.

MERGE INTO dbo.wikipedia_articles AS target
USING (
    SELECT 
        id,
        title,
        AI_GENERATE_EMBEDDINGS(title USE MODEL Ada2Embeddings) AS title_vector
    FROM dbo.staging_articles
) AS source
ON target.id = source.id
WHEN MATCHED THEN
    UPDATE SET 
        title = source.title,
        title_vector = source.title_vector
WHEN NOT MATCHED BY TARGET THEN
    INSERT (id, title, title_vector)
    VALUES (source.id, source.title, source.title_vector)
WHEN NOT MATCHED BY SOURCE AND target.id > 100000 THEN
    DELETE;

Vektorindexet uppdateras automatiskt för att återspegla alla ändringar som gjorts av -instruktionen MERGE .