09.11.2018, Vladimír Klaus, navštíveno 2539x
Pokud potřebujete přenést tvorbu databáze a tabulek na jiný server pomocí skriptu, je postup jasný a jednoduchý. V SQL Server Management Studiu se klikne pravým tlačítkem na databázi a vyvolá:
Tasks > Generate Scripts
Objeví se průvodce, kde si buď necháte vygenerovat vše nebo jen něco. Jenže často tam chybí informace týkající se fulltextu.
Proto si zkontrolujte nastavení Script full-text catalogs.
Tools > Options - SQL Server Object Explorer > Scripting
Pokud to tedy zapnete, dočkáte se jen velmi nenápadného skriptu, který sice způsobí založení katalogu, ale bez fulltextových indexů je katalog celkem k ničemu.
/****** Object: FullTextCatalog [emaily_catalog] ******/
CREATE FULLTEXT CATALOG [emaily_catalog] WITH ACCENT_SENSITIVITY = OFF
GO
Takže pak ještě nezapomeňte zapnout Script full-text indexes.
Pak už bude ve výsledném skriptu to hlavní - tedy jak jsou indexy nastavené.
/****** Object: FullTextIndex Script ******/
CREATE FULLTEXT INDEX ON [dbo].[Emaily](
[Odesilatel] LANGUAGE 'Czech',
[OdesilatelJmeno] LANGUAGE 'Czech',
[PlainText] LANGUAGE 'Czech',
[Predmet] LANGUAGE 'Czech',
[Prijemci] LANGUAGE 'Czech')
KEY INDEX [PK_Emaily]ON ([emaily_catalog], FILEGROUP [PRIMARY])
WITH (CHANGE_TRACKING = AUTO, STOPLIST = SYSTEM)
A proč to všechno zmiňuji? Především proto, že z průvodce není patrné, zda tam skript pro indexy je nebo není a pokud si s touto záležitostí hrajete poprvé, můžete si říkat, že SSMS funguje špatně a neumí vytvořit opravdu kompletní skript pro tvorbu databáze a všech objektů.
Dodatek 24.8.2024: V SSMS 20.2 (možná i v jiných verzích) se fulltextové indexy negenerovaly, když se negenerovaly i příslušné tabulky. Pro jistotu je tedy lepší nechat vygenerovat kompletní skript a nevybírat jen fulltext.