IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'X' AND COLUMN_NAME = 'Y')
IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Z' AND COLUMN_NAME = 'A')
BEGIN
UPDATE [dbo].[X]
SET Y= (SELECT inst.[A] FROM [dbo].[Z] s WHERE s.[B] = [dbo].[x].[B]);
END
GO
私は2つのIFコンフィグレーションを組み合わせて、両方が満たされている場合にのみアップデートを実行したいと考えています。私はクラブ2が存在するいくつかの方法がありますか?IF EXISTSでSQLでAND条件を使用するにはどうすればよいですか?
それとも、実際にあなたのコードを見て、空、それが書かれたように動作します - 第二IFは、第一の下にネストされています。ただ単にタブを追加してください:) –
また、INFORMATION_SCHEMA.COLUMNSクエリにTABLE_SCHEMAを含める必要があります。そうしないと、同じテーブル名が別のスキーマに存在する場合に間違った結果が得られます。 –
G、列Aまたは列Yが存在しないか、削除された場合はどうなりますか?その場合、私はエラーになります。 msg 207、レベル16、状態1、行5 無効な列名 'A'です。 – user811433