Условно создайте полнотекстовый каталог в одной строке SQL (из установщика) - PullRequest
2 голосов
/ 21 сентября 2009

Я создаю установщик, использующий WiX (без использования ключевых слов, поскольку здесь не проблема WiX), который должен создать полнотекстовый индекс для базы данных расширенных служб SQL Server Express 2005.

До сих пор я использую SQL

 CREATE FULLTEXT CATALOG Foobar in path 'c:\Whereever'

Теперь установщик не удалит базу данных при удалении, поскольку она может содержать ценные пользовательские данные. Теперь, когда я обновлю программное обеспечение, оно наткнется на создание уже существующего полнотекстового индекса. (Прервать в установщике, так как он не может запустить эту строку SQL)

Что я хочу сделать, так это запустить строку условно, если полнотекстовый индекс еще не существует. Я бы ожидал что-то вроде

IF NOT EXISTS(SELECT * from sys.??????? WHERE name = 'Foobar')
    CREATE FULLTEXT CATALOG Foobar in path 'c:\Whereever'

(я только что увидел что-то похожее на то, что мне нужно здесь в stackoverflow )

Но где (и как) я могу узнать, записан ли индекс в таблицу sys (и что это за таблица?)

1 Ответ

4 голосов
/ 21 сентября 2009

sys.fulltext_catalogs

IF EXISTS (SELECT 1 FROM sys.fulltext_catalogs
           WHERE name = 'foobar') ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...