9

ビルド プロセスの一環として、SSEUtil を使用して、開発データベース (SQL Server 2008 R2) から派生したスキーマから機能テスト データベースを自動的に作成しています。これにより、開発データベースに対して SQL リポジトリ テストを実行しなくても、2 つのデータベースを (スキーマに関して) 同期した状態に保つことができます。

最近、開発スキーマでこのプロジェクトのテーブルに全文索引を初めて追加しました。新しく作成した単体テスト データベースにスキーマを適用しようとすると、SQL を実行して次のエラーが発生します。全文カタログ:

CREATE FULLTEXT CATALOG [FullTextCatalog] AUTHORIZATION [dbo]
GO

ユーザー インスタンスで全文検索を使用できません。
[SqlException 番号 9982、クラス 16、状態 100、1 行目]

私は高低を検索しました。私が見つけた唯一の助けは、誰かが「親データベースに接続する」ことを提案した別のサイトでした。それが何を意味するのかわかりません。そして、このエラーが何を意味するのかわかりません。「ユーザーインスタンス」とは何ですか?

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

4

3 に答える 3

17

また

ユーザーは、データベースに対する CREATE FULLTEXT CATALOG 権限を持っているか、db_owner または db_ddladmin 固定データベース ロールのメンバーである必要があります。

また

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

この機能がインストールされているかどうかをテストするには、次の 2 つの方法があります。この機能は、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 が接続文字列をまったく使用していなかったことです。localdb インスタンスに接続していたため、「ユーザー インスタンスで全文検索を使用できません」という不可解なエラー メッセージが表示されました。実際のデータベースに接続すると、期待どおりに機能しました。

于 2017-06-13T13:37:04.033 に答える