我正嘗試在SQL Server 2008 R2和Orchard CMS中使用多租戶配置部署全文搜索解決方案。每個租戶都有自己的數據庫。我們正在使用自動數據遷移來管理數據庫模式更改。我想創建一個使用遷移的全文目錄和索引。不過,我得到以下錯誤:如何從.NET應用程序創建全文搜索索引或目錄?
CREATE FULLTEXT CATALOG statement cannot be used inside a user transaction.
我知道錯誤的原因,但我不能確定一個解決方法。我試圖在應用程序中使用System.Data.SqlClient.SqlConnection
類打開一個新的數據庫連接,並以某種方式將其配置爲不創建事務,但是這並沒有實現任何功能。
是否可以通過.NET提供程序創建全文索引/目錄,而不是通過SSMS直接連接到數據庫?
編輯:
我試過這個代碼與SMO:
var server = new Server(new ServerConnection(new SqlConnection(connectionString)));
var database = server.Databases[databaseName];
var fulltextCatalog = new FullTextCatalog(database, fullTextCatalogName);
fulltextCatalog.Create();
它導致與同一異常。
您的數據庫用戶可以執行其他DDL操作而不會出現任何錯誤消息嗎? – Agilox
是的,只有兩個不起作用的語句是「創建全文目錄」和「創建全文索引」。 – Wojteq
@Wojteq - 出現什麼錯誤?您可能沒有安裝全文搜索。你安裝了什麼版本的SQL Server 2008?運行'SELECT FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')',如果你看到'0'結果,你沒有安裝它。請參閱http://stackoverflow.com/questions/6511167/full-text-search-installed-or-not – Omar