ここに私の最初の投稿なので、私に優しくしてください:)
ソースデータを取得し、操作を行い、更新ステートメントを実行してから、データをメインデータテーブルに入れるストアドプロシージャがあります (ETL と言えるでしょう)。私が抱えている問題は、私が書いた update ステートメントの一部が、プロシージャの実行時に機能していないように見えることですが、別のクエリ ウィンドウで手動で実行すると、完全に機能します。技術的には、2 つの部分があります。ステートメントを更新すると、一部が更新され、もう一方が失敗するため、問題がさらに複雑になります。
更新のコード スニペットは次のとおりです。
UPDATE Prod_DDb.dbo.DataLoadTeleconnect
SET pCommissionValue = (SELECT Commission
FROM dbo.MappingiPhoneCommission
WHERE Prod_DDb.dbo.DataLoadTeleconnect.pMRC BETWEEN BaseMRC AND HighMRC),
pMRCBand = (SELECT MRCBand
FROM dbo.MappingiPhoneCommission
WHERE Prod_DDb.dbo.DataLoadTeleconnect.pMRC BETWEEN BaseMRC AND HighMRC)
WHERE pMapID = 'iPhone'
このコードは、レコードの MRC がベース mrc とハイ mrc の間にあるソース テーブルの 2 つの列を更新します。コミッションは更新されていない値ですが、MRCBand は正しく更新されます。
MappingiPhoneCommission テーブルには、次の列があります。
- BaseMRC
- 高MRC
- 手数料
- MRCバンド
これがストアド プロシージャでは失敗するが、新しいクエリ ウィンドウでは正常に実行される理由を誰かが明らかにすることができれば、私は最も感謝しています。
さらに情報が必要な場合はお知らせください。必要なものを提供できるよう努めます。
よろしくトニー