Sdílet prostřednictvím


sp_fulltext_catalog (Transact-SQL)

platí pro: SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Vytváří a ukládá katalog s plným textem a zahajuje a zastavuje akci indexování pro katalog. Pro každou databázi lze vytvořit více katalogů s plným textem.

Důležité

Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Použijte místo toho CREATE FULLTEXT CATALOG, ALTER FULLTEXT CATALOG a DROP FULLTEXT CATALOG .

Transact-SQL konvence syntaxe

Syntaxe

sp_fulltext_catalog
    [ @ftcat = ] N'ftcat'
    , [ @action = ] 'action'
    [ , [ @path = ] N'path' ]
[ ; ]

Arguments

[ @ftcat = ] N'ftcat'

Název katalogu s plným textem. Názvy katalogů musí být jedinečné pro každou databázi. @ftcat je sysname, bez výchozího nastavení.

[ @action = ] 'akce'

Akce, která se má provést. @action je varchar(20) a může být jednou z těchto hodnot.

Poznámka:

Katalogy s plným textem lze vytvářet, vynechávat a upravovat podle potřeby. Nicméně se vyhněte současným změnám schémat na více katalozích. Tyto akce lze provádět pomocí uložené procedury sp_fulltext_table , což je doporučený způsob.

Hodnota Description
create Vytváří prázdný, nový katalog s plným textem v souborovém systému a přidává příslušný řádek sysfulltextcatalogs s hodnotami @ftcat a @path, pokud existují. @ftcat musí být v databázi jedinečná.
přetáhnout Odstraní @ftcat odstraněním ze souborového systému a smazáním příslušného řádku v sysfulltextcatalogs. Tato akce selže, pokud tento katalog obsahuje indexy pro jednu nebo více tabulek. sp_fulltext_table '<table_name>', 'drop' by mělo být vykonáno tak, aby tabulky byly odstraněny z katalogu.

Chyba se zobrazí, pokud katalog neexistuje.
start_incremental Začíná to postupnou populaci pro @ftcat. Chyba se zobrazí, pokud katalog neexistuje. Pokud je populace s plným textem indexu již aktivní, zobrazí se varování, ale žádná populační akce nenastane. Při inkrementální populaci se pro indexování plného textu se získávají pouze změněné řádky, pokud je v tabulce indexované s plným textem přítomen sloupec s časovým razítkem .
start_full Začíná plná populace pro @ftcat. Každý řádek každé tabulky spojené s tímto fulltextovým katalogem je získán pro indexaci v plném textu, i když již byly indexovány.
Stop Zastaví indexovou populaci pro @ftcat. Chyba se zobrazí, pokud katalog neexistuje. Pokud je populace již zastavena, žádné varování se nezobrazí.
přestavět Přestavuje @ftcat. Když je katalog znovu sestaven, stávající katalog je smazán a na jeho místo je vytvořen nový. Všechny tabulky, které obsahují odkazy na indexování v plném textu, jsou spojeny s novým katalogem. Přestavba resetuje metadata plného textu v tabulkách databázového systému.

Pokud je sledování změn VYPNUTO, přestavba nezpůsobí znovuzaplnění nově vytvořeného plnotextového katalogu. V tomto případě pro znovunaplnění proveďte sp_fulltext_catalog akci start_full nebo start_incremental .

[ @path = ] N'path'

Kořenový adresář (nikoli kompletní fyzická cesta) pro akci vytvoření . @path je nvarchar(100), s výchozím , NULLcož označuje použití výchozí polohy specifikované při nastavení.

Toto je podadresář FTData v adresáři MSSQL ; například C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\FTData. Specifikovaný kořenový adresář musí být umístěn na disku na stejném počítači, obsahovat více než jen písmeno disku a nesmí být relativní cestou. Síťové mechaniky, vyměnitelné mechaniky, diskety a cesty UNC nejsou podporovány. Plnotextové katalogy musí být vytvořeny na lokálním pevném disku spojeném s instancí SQL Serveru.

@path je platná pouze tehdy, když je @actionvytvořen. Pro akce jiné než vytvořit (zastavit, znovu postavit a podobně) musí @path být nebo NULL vynechán.

Pokud je instance SQL Serveru virtuální server v clusteru, musí být katalogový adresář uvedený na sdíleném disku, na kterém závisí zdroj SQL Serveru. Pokud @path není specifikováno, umístění výchozího katalogu je na sdíleném disku, v adresáři, který byl určen při instalaci virtuálního serveru.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

Akce start_full se používá k vytvoření kompletního snímku plných textových dat v @ftcat. Akce start_incremental se používá k opětovnému indexování pouze změněných řádků v databázi. Inkrementální populace může být použita pouze tehdy, pokud má tabulka sloupec s časovým razítkem typu. Pokud tabulka v katalogu s plným textem neobsahuje sloupec časového razítka, tabulka prochází plnou populací.

Plnotextová katalogová a indexová data jsou uložena v souborech vytvořených v katalogovém adresáři s plným textem. Katalogový adresář s plným textem se vytváří jako podadresář adresáře specifikovaného v @path nebo ve výchozím adresáři katalogu s plným textem serveru, pokud @path není specifikován. Název katalogu s plným textem je vytvořen tak, aby zaručil jeho jedinečnost na serveru. Proto všechny katalogové adresáře s plným textem na serveru mohou sdílet stejnou cestu.

Povolení

Volající musí být členem db_owner role. V závislosti na požadované akci by volajícímu neměla být odepřena oprávnění ALTER nebo CONTROL (která db_owner má) v cílovém katalogu s plným textem.

Examples

A. Vytvořte katalog s plným textem

Tento příklad vytváří prázdný katalog s plným textem, Cat_Desc, v databázi AdventureWorks2025 .

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'create';
GO

B. Přetvořit katalog s plným textem

Tento příklad znovu vytváří existující katalog plných textů v databáziCat_Desc. AdventureWorks2025

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'rebuild';
GO

C. Začněte populaci plnotextového katalogu

Tento příklad začíná plnou populaci katalogu Cat_Desc .

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'start_full';
GO

D. Zastavte populaci plnotextového katalogu

Tento příklad zastavuje populaci katalogu Cat_Desc .

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'stop';
GO

E. Odstraňte katalog s plným textem

Tento příklad katalog odstraní Cat_Desc .

USE AdventureWorks2022;
GO

EXECUTE sp_fulltext_catalog 'Cat_Desc', 'drop';
GO