2012-06-01 32 views
6

SSEUtilを使用して、ビルドプロセスの一部として開発データベース(SQL Server 2008 R2)から派生したスキーマから機能テストデータベースを自動的に作成しています。これにより、開発データベースに対してSQLレポジトリのテストを実行せずに、2つのデータベースを同期(スキーマ単位)したままにすることができます。SQLエラー: "ユーザーインスタンスでフルテキスト検索を使用できません。

私は最近開発スキーマでこのプロジェクトの最初のフルテキストインデックスをテーブルに追加しました。新しく作成された単体テストデータベースにスキーマを適用しようとすると、次のエラーが発生します。

CREATE FULLTEXT CATALOG [FullTextCatalog] AUTHORIZATION [dbo] 
GO 

Cannot use full-text search in user instance.
[SqlException Number 9982, Class 16, State 100, Line 1]

私はハイとローを検索しました:フルテキストカタログを作成するためのSQL。私が見つけた唯一の助けは、誰かが「親データベースに接続する」ことを提案した別のサイト上でした。私はそれがどういう意味か分かりません。そして、私はこのエラーが何を意味するか分かりません。 「ユーザーインスタンス」とは何ですか?

誰もこれを回避する方法を提案できますか?継続的な統合のために2つのデータベーススキーマを同期させておく方が良い方法はありますか?

答えて

9

どちらか

ユーザーは、データベース上のFULLTEXTカタログ権限をCREATE持っている、またはロールdb_ownerのメンバー、またはのdb_ddladmin固定データベースロールでなければなりません。

または

SQLインスタンスは、それがインストールされていない場合は、フルテキストカタログを使用することはできません。 SQL Serverインスタンスでフルテキストサービスが実行されていることを確認します。

この機能がインストールされているかどうかをテストする2つの方法があります。この機能は、2005および2008(SQL Expressなど)、SQL Serverのすべてのエディションで利用可能です

  1. チェックサービスアプレット(実行 - >タイプ 'services.mscと')このエントリの: SQL Serverのフルテキスト検索またはSQL Serverフルテキスト検索(SQLEXPRESS)(SQL Expressの場合)このサービスを起動しないでください。

  2. クエリアナライザでクエリ「fulltextserviceproperty( 'isfulltextinstalled')」を実行します。結果が「1」の場合、それはインストールされていません。この機能の使用不能の場合には

、あなたはこれは本当に質問への答えではありませんhttp://www.microsoft.com/express/sql/download/default.aspx

Reference taken from here

+0

ありがとうRomil。データベースの開発者インスタンス(同じマシン、同じSQL Server Expressインスタンス)にインデックスを適用できるので、フルテキストサービスが正しく実行され、セットアップされていることは間違いありません。私はアクセス許可を突きつけ、それが私をどこにでも導くかどうかを見ます。提案していただきありがとうございます。 – BitsEvolved

1

から「SQLEXPR_ADV.EXE」をダウンロードしてインストールする必要がありますが、エンティティフレームワークのコードファーストデータベース(コマンドupdate-database)を更新するときに、Visual Studioパッケージマネージャで同様の問題が発生しました。

問題は私が間違った起動プロジェクトを選択したため、Visual Studioが接続文字列をまったく使用していないことでした。これはlocaldbインスタンスに接続していたため、「ユーザーインスタンスで全文検索を使用することはできません」という致命的なエラーメッセージが表示されます。実際のデータベースに接続すると、期待どおりに動作しました。

関連する問題