9

作为构建过程的一部分,我正在使用 SSEUtil 从我的开发数据库 (SQL Server 2008 R2) 派生的模式中自动创建功能测试数据库。这允许我保持两个数据库同步(模式方式),而无需针对我的开发数据库运行 SQL 存储库测试。

我最近在我的开发模式中首次为该项目的表添加了全文索引,现在当我尝试将模式应用于新创建的单元测试数据库时,当它执行 SQL 以创建全文目录:

CREATE FULLTEXT CATALOG [FullTextCatalog] AUTHORIZATION [dbo]
GO

无法在用户实例中使用全文搜索。
[SqlException 编号 9982,第 16 类,状态 100,第 1 行]

我搜索了高低。我找到的唯一帮助是在另一个网站上有人建议“附加到父数据库”。我不知道那是什么意思。而且我不知道这个错误是什么意思。什么是“用户实例”?

任何人都可以提出解决这个问题的方法吗?有没有更好的方法让两个数据库模式保持同步以进行持续集成?

4

3 回答 3

17

任何一个

用户必须对数据库具有 CREATE FULLTEXT CATALOG 权限,或者是 db_owner 或 db_ddladmin 固定数据库角色的成员。

或者

如果没有安装 SQL 实例,您将无法使用全文目录。确保 SQL Server 实例运行全文服务。

这里有两种测试这个功能是否安装的方法。此功能适用于 SQL Server 2005 和 2008 的所有版本(包括 SQL Express)

  1. 检查此条目的服务小程序(运行 -> 键入“services.msc”):SQL Server FullText Search 或 SQL Server FullText Search (SQLEXPRESS)(在 SQL Express 的情况下)。启动这个不运行的服务

  2. 在查询分析器中运行查询“select fulltextserviceproperty('isfulltextinstalled')”。如果结果为“1”,则安装,否则不安装。

在此功能不可用的情况下,您需要通过从http://www.microsoft.com/express/sql/download/default.aspx下载“SQLEXPR_ADV.EXE”进行安装

参考取自这里

于 2012-06-01T06:29:05.477 回答
2

这并不是问题的真正答案,但是在更新实体框架代码优先数据库(命令update-database)时,我遇到了与 Visual Studio 包管理器类似的问题。

问题是我选择了错误的启动项目,因此 Visual Studio 根本没有使用我的连接字符串。它正在连接到 localdb 实例,因此出现神秘的错误消息“无法在用户实例中使用全文搜索”。一旦我让它连接到实际的数据库,它就会按预期工作。

于 2017-06-13T13:37:04.033 回答
0

我也遇到了这个用户实例问题。我不得不承认我对SSMS只有基本的了解。显然我以public用户身份登录。我怎样才能成为会员db_owner?我尝试在不使用 GUI 的情况下生成所有内容并编写脚本。

例如,如果我执行这个

ALTER AUTHORIZATION ON DATABASE::[dbname] TO sa;

EXEC sp_changedbowner 'sa';

我仍然收到Cannot use full-text search in user instance错误

USE [dbname]
    CREATE FULLTEXT CATALOG [ftc_dbname] AS DEFAULT
GO
于 2020-10-16T13:02:23.633 回答