我正在使用SSEUtil从我的开发数据库(SQL Server 2008 R2)派生的模式中自动创建功能测试数据库,这是我构建过程的一部分。这允许我保持两个数据库同步(模式方式)而不对我的开发数据库运行SQL存储库测试。
我最近在我的开发模式中为该项目首次向表添加了一个全文索引,现在当我尝试将模式应用于新创建的单元测试数据库时,我在执行SQL时遇到以下错误创建全文目录:
CREATE FULLTEXT CATALOG [FullTextCatalog] AUTHORIZATION [dbo]
GO
无法在用户实例中使用全文搜索 [SqlException Number 9982,Class 16,State 100,Line 1]
我搜索过高低。我找到的唯一帮助是在另一个网站上,有人建议“附加到父数据库”。我不知道这意味着什么。我不知道这个错误意味着什么。什么是“用户实例”?
有人可以建议解决这个问题吗?有没有更好的方法来保持两个数据库模式同步以进行持续集成?
答案 0 :(得分:13)
无论
用户必须对数据库具有CREATE FULLTEXT CATALOG权限,或者是db_owner或db_ddladmin固定数据库角色的成员。
或
如果SQL实例没有安装它,您将无法使用全文目录。确保SQL Server实例已运行全文服务。
以下是测试是否安装此功能的两种方法。此功能适用于所有版本的SQL Server 2005和2008(包括SQL Express)
检查此条目的服务小程序(运行 - >输入'services.msc'): SQL Server全文搜索或SQL Server全文搜索(SQLEXPRESS)(在SQL Express的情况下)。启动不运行
在查询分析器中运行查询“select fulltextserviceproperty('isfulltextinstalled')”。如果结果是'1',则安装它不是。
如果此功能不可用,则需要通过从http://www.microsoft.com/express/sql/download/default.aspx
下载“SQLEXPR_ADV.EXE”进行安装。答案 1 :(得分:1)
这不是问题的真正答案,但在更新实体框架代码优先数据库(命令update-database
)时,我遇到了与visual studio包管理器类似的问题。
问题是我选择了错误的启动项目,因此visual studio根本没有使用我的连接字符串。它连接到localdb实例,因此隐秘的错误消息“不能在用户实例中使用全文搜索”。一旦我连接到实际数据库,它就按预期工作。
答案 2 :(得分: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