2012-05-08 5 views
0

複数のselectステートメントを含むストアドプロシージャを呼び出すときは、SPの外部で同じコードを実行しても、期待される結果。これは、実稼働環境からのデータベースバックアップが開発サーバーにインストールされるまでに起きています。私はしかし、(のようにそれを押して「ファイル名を指定して実行」を選択します)私は期待を取得自体がその手順のすべてのコードを実行した場合ストアドプロシージャの呼び出し時に返される行はありません。実行中のコードで行が返される

exec dbo.USP_S_CustomerLimit '00000053-0000-1148-5300-000000000000' 

:2008 Enterprise Managerで実行すると

は、以下の例では、行を戻しません結果行の量:

SELECT * FROM CustomerLimit WHERE Department = 
(SELECT Department FROM Customer WHERE CustomerID = CONVERT(BINARY(16), CONVERT(UNIQUEIDENTIFIER, '00000053-0000-1148-5300-000000000000'))) 

私も残念ながらまったく同じように動作し、コードのこのバリアントを試してみました:

SELECT CustomerLimit.* FROM CustomerLimit 
JOIN Customer ON Customer.Department = CustomerLimit.Department 
WHERE Customer.CustomerID = CONVERT(BINARY(16), CONVERT(UNIQUEIDENTIFIER, '00000053-0000-1148-5300-000000000000')) 

私はそれが何らかの正しい問題だと感じますが、どこを調べるべきかわかりません。私はサーバー上のdb_ownerです。また、問題のデータベースのdb_ownerというグループに属しています。この問題の原因は何でしょうか?私はちょうど1つの選択でtestprocedureを作成する場合は、その手順を実行する際に、FE Select * from Customerは、私は、正しい結果を得るが、私はFE Select * from Customer where CustomerID in (select CustomerID from Customer)書くならば、私は行を取得しないあなたはすべての権利/許可を持っているかどうか... :(

+0

** **データベースシステムとバージョン** ** SQL **は単なる構造化照会言語です - 多くのデータベースで使用されている言語システム - SQLは**データベース製品ではありません**このようなものはベンダー固有のものであることが多いので、使用しているデータベースシステムを知る必要があります.... –

答えて

0

チェックこれらのテーブルのリストについては、sys.objectsを参照してください。

関連する問題