2016-10-21 10 views
0

私は、患者テーブルの条件に基づいて非アクティブに設定する処方テーブルを持っています。これは使えますか?別のテーブルフィールドに基づいてテーブルのカラムを更新

update Prescription 
set active = 0 
from prescription left join patients on patients.id = prescription.patientid 
where patients.[site] = @site 

私はアクティブな運用データベースを持っているので、まだチャンスをしたくありません。

+0

あなたは、サブクエリを使用しないのはなぜ? –

+0

@SandipPatel - など? –

+2

トランザクション内でラッピングすることができます。変更したデータセットを選択とロールバックで確認し、最後に証明してください。トランザクションの構文は、SQLインプリメンテーションによって異なります。 – mirokai

答えて

2

使用シンプルサブクエリ:

UPDATE Prescription 
SET active = 0 
WHERE patientid IN(SELECT id FROM patients WHERE [site] = @site) 

OR

UPDATE Prescription 
SET active = 0 
WHERE EXISTS (SELECT id FROM patients p WHERE p.id=Prescription.patientid AND p.[site] = @site) 
+0

EXISTはよくINより良いです –

+0

@Ruslan:はい、あなたは正しいExistはより良いです –

関連する問題