2016-11-29 8 views
0

Iデータベース1におけるいくつかのビューを持っていると私は、データベース2.データベース内のストアドプロシージャにストアドプロシージャを書いたいくつかの理由のためのデータベース1.ストアドプロシージャは、さまざまな使用句でコンパイルしていない

で複数のテーブル2つの参照時にI持っている:

USE Database1 
GO 

テスト中、それは完全に正常に動作します。しかし私が使用するとき

USE Database2 
GO 

ストアドプロシージャはコンパイルされません。警告はなく、ちょうどスピンを続ける。最初のケースは実行に約1秒しかかかりません。

誰かが問題になる可能性がありますか? database1と同じ参照を使用するdatabase2の同様のストアドプロシージャを実行しようとすると正常に動作します。また、それらはSQL Serverの同じサーバー上にあります。

申し訳ありませんコードを投稿できません。

+3

コードなしでは、問題の原因を特定することが難しくなります。問題の原因となっているストアドプロシージャの別のビットがある可能性があります。セキュリティに懸念がある場合は、テーブル名を例の中のものに変更してください。 – CodeLikeBeaker

+0

それはいくつでもありえます。これらのprocsを作成しようとしていますか、それを実行するときですか?私は実行時の気持ちがある。これは間違いなくブロッキングの兆候です。トランザクションがまだ開かれている可能性があります。そのため、プロシージャ内のselect文はリソースロックが削除されるのを待っているだけです。いくつかのコードを提供できるなら、私たちはおそらく助けることができます。しかし、今のところ座っているように、我々はただ推測しているだけです。 –

+0

私はsprocを作りました。しかし、データをコンパイルしないので、コードを変更してパラメータなどを削除して、単にdeclareとsetを使用してサンプルパラメータを追加しました。私は、何が起こっているのかを理解し、理解しています。悪い報告をする。ありがとう – user3697498

答えて

0

SQL Serverはクエリプランを作成できるようにオブジェクトをロックアウトする必要があります。データベースに接続できないか、必要なロックを取ることができません。

+0

申し訳ありませんが、私はかなり新しく、ロックをかなり理解していません。彼らが何であるか、そしてこの問題をどうやって確認するかを明確にすることはできますか? – user3697498

関連する問題