Я пытаюсь запустить сценарий SQL для SQL Server 2005 как часть настройки для моих интеграционных тестов. Сценарий прекрасно работает, если я выполняю его из SQL Server Management Studio. Однако при программном выполнении эта часть сценария, которая включает полнотекстовый поиск, отказывается работать:
-- lots of tables and indexes created above
create unique nonclustered index [IX_Id] on [MyTable] ( [Id] asc )
-- this line fails
sp_fulltext_database enable
create fulltext catalog MyCatalog with accent_sensitivity = off as default
create fulltext index on MyTable([Title],[Content]) key index IX_Id with change_tracking auto
Я получаю ошибку:
Неверный синтаксис рядом с «enable».
Если я удаляю строки, относящиеся к полному тексту, все работает нормально. Если я изменю sp_fulltext_database enable
вызов на это:
EXEC ('sp_fulltext_database enable');
Я получаю другую ошибку:
Невозможно использовать полнотекстовый поиск в мастере,
база данных tempdb или модель.
Это не имеет никакого смысла для меня вообще. Правильная база данных используется .
Для справки, код, выполняющий скрипт, выглядит следующим образом (я использую NHibernate):
private static void InitializeDatabase()
{
var sessionFactory = new NHibernate.Cfg.Configuration().Configure().BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
{
session.CreateSQLQuery("IF DB_ID('" + databaseName + @"') IS NOT NULL DROP DATABASE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(@"CREATE DATABASE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(@"USE """ + databaseName + @""";").ExecuteUpdate();
session.CreateSQLQuery(GetCreationScript()).ExecuteUpdate();
}
}
Может кто-нибудь сказать мне, что мне нужно сделать, чтобы это заработало?
Спасибо
Kent