我正在尝试使用具有多租户配置的SQL Server 2008 R2和Orchard CMS部署全文搜索解决方案。每个租户都有自己的数据库。我们使用自动数据迁移来管理数据库架构更改。我想使用迁移创建一个完整的文本目录和索引。但是我得到以下错误:
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();
结果与此相同。
答案 0 :(得分:0)
用户必须对数据库具有CREATE FULLTEXT CATALOG权限,或者是db_owner或db_ddladmin固定数据库角色的成员。
答案 1 :(得分:0)
您可以使用create and manage full-text indexes SMO - 以及任何其他SQL Server对象。