複数の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)
書くならば、私は行を取得しないあなたはすべての権利/許可を持っているかどうか... :(
** **データベースシステムとバージョン** ** SQL **は単なる構造化照会言語です - 多くのデータベースで使用されている言語システム - SQLは**データベース製品ではありません**このようなものはベンダー固有のものであることが多いので、使用しているデータベースシステムを知る必要があります.... –