2017-05-17 8 views
0

から私は現在、私は別のテーブルからテーブルを更新するSQL Server 2012でストアドプロシージャに取り組んでいます:TSQL更新表のインポート表

私のクエリは次のようになります。

UPDATE [MySchema].[Delivery] 
SET DeliveryId = (SELECT ID FROM @DeliveryIds) 
WHERE PoolId = 1 

どういうわけかこのクエリは機能しません...あなたはこの問題を解決する方法を知っていますか?私は@DeliveryIdsはTABLE変数が定義されており、それ以前のストアドプロシージャに移入されていると仮定するつもりです

+1

あなたは@DeliveryIdsへの配送に参加できますか?もしそうなら、そうする。 – Leonidas199x

+0

ここにはいくつかの情報が欠落しています。 '@ DeliveryIds'はどこに定義されていますか?それには1つのレコードしかありませんか? – iamdave

+1

この質問に対する標準的な期待は、入力データセットの例と出力データセットの期待値です。パラメータを使用すると、一般的にどのように値と理由があるのか​​を示すことができます。このコミュニティがあなたのためにあなたの問題を解決することを期待するなら、あなたはもっと仕事をする必要があります。 –

答えて

1

:)

感謝。

しかし、私たちはあなたの[Delivery]テーブルに対してそのテーブルをどのように参加させるのかまだ分かりません。

UPDATE Delivery 
SET DeliveryId = DIDS.ID 
FROM @DeliveryIds DIDS 
WHERE Delivery.PoolId = 1 
    and DIDS.????? = Delivery.????? 

これらの2つのテーブルが結合する列に疑問符を置き換えます。

+0

ありがとう、これは多くの助けになります。あなたの前提は正しかった...おそらく1つの質問.DeliveryIdsにDeliveryよりも多くのエントリがある場合はどうすればよいですか? hmm – TimHorton

+1

このクエリは、DeliveryIdテーブルに一致するレコードを持つDeliveryテーブル内のレコードのみを更新します。 (?????列を使用した結合に基づいています。DeliveryIdsにDeliveryテーブルよりも多くのレコードまたは少ないレコードがある場合は問題ありません。 – seagulledge