我正在尝试对SQL Server2005运行SQL脚本,作为我的集成测试设置的一部分。如果我在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');
我得到一个不同的错误:
无法在master中使用全文搜索,
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();
}
}
有人能告诉我要做什么才能让这个工作吗?
谢谢,
肯特