我試圖對SQL Server 2005運行一個SQL腳本作爲我的集成測試的一部分。如果我在SQL Server Management Studio中執行它,腳本工作得很好。但是,程序執行時,使全文搜索腳本的這部分拒絕工作:這個SQL腳本爲什麼失敗?
-- 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
我得到的錯誤是:
Incorrect syntax near 'enable'.
如果我刪除有關全文行,一切正常。如果我改變sp_fulltext_database enable
調用此:
EXEC ('sp_fulltext_database enable');
我得到一個不同的錯誤:
Cannot use full-text search in master, tempdb, or model database.
這沒有任何意義,我在所有。正確的數據庫是正在使用中。
僅供參考,執行腳本代碼看起來像這樣(我使用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();
}
}
誰能告訴我什麼,我需要做的就是這個工作?
感謝,
肯特
沒有 - 同樣的問題。不能在master,tempdb或model數據庫中使用全文搜索。 – 2010-01-20 12:26:23
然後你使用'master','tempdb'或'model'。您能否在SSMS中運行腳本(確保在左上角的組合框中選擇了正確的數據庫)並檢查問題是否存在? – Quassnoi 2010-01-20 12:34:49
Cheers Quassnoi - 那讓我瘋狂。 – 2010-01-20 12:38:11