12

VS2008 で作成された SQL Server CLR トリガー プロジェクトがあります。プロジェクトを VS2012 で開いても問題はありませんが、ソリューションのビルド時に SQL71501 エラーが発生し、Trigger: [...] has an unresolved reference to object [...].

私の読書によると、これはプロジェクトにデータベース参照がないことが原因です。データベース参照を追加しようとすると、[データベース参照の追加] ダイアログが表示され、次の 3 つのオプションが表示されます。

  • 現在のソリューションのデータベース プロジェクト ** このオプションはグレー表示/無効になっています
  • システム データベース (システム DB のみを表示)
  • データ層アプリケーション (.dacpac) ** これは私がプロジェクトを作成した方法ではないため、選択するオプションはありません。

さらに読むと、最初のオプションで選択するデータベース プロジェクトがない理由は、サーバー エクスプローラーを介してデータ接続が追加されていないためであることが示唆されました。私の場合、確かにデータ接続が存在し、プロジェクトが開いている間、データベースをブラウズしたり、データを見たりすることができます。

ターゲット フレームワークに関係があるのではないかと思い、3.5 や 2 をターゲットにしてみましたが、同じ問題が発生します。

何か基本的なことが欠けているように感じますが、それを完全に解決することはできません。どんな助けでも大歓迎です。

4

3 に答える 3

9

デフォルトのデータベース変数が無効であるため、このダイアログで「OK」ボタンが有効にならないことがわかりました(私の場合は「.」が含まれていました)。

これがエラーである手がかりは、「使用例」フィールドのテキストにエラー メッセージが含まれていることです。ライト グレーの上にダーク グレーが表示されているため、見にくいだけです。

データベース変数名を編集すると、これが修正されます。

于 2013-10-11T02:58:51.977 に答える
6

これに対する回避策を見つけましたが、最適ではありませんが、少なくとも機能します:

これを試してください-SQLサーバーオブジェクトエクスプローラーを開きます-サーバーへの新しい接続を作成します-データベースを右クリックして、新しいプロジェクトの作成を選択します...-ウィザードは、すべての参照と接続文字列が添付されたプロジェクトを作成します。

乾杯!

于 2012-08-16T23:29:19.130 に答える
0

答えを変えました

問題は、挿入が単一の行であると想定できないことです。実際には、主キーをトリガー内の単一の値としてしか参照できません。

于 2014-09-17T19:59:49.583 に答える