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
Desidero combinare le 2 confizioni IF ed eseguire l'aggiornamento solo quando entrambi sono soddisfatti. C'è un modo in cui posso club 2 SE ESISTE?Come posso usare AND condition in IF EXISTS in SQL?
Oppure, in realtà guardando il codice, funzionerà come scritto - il 2 ° IF è nidificato sotto il primo. Basta aggiungere schede :) –
Inoltre, dovresti includere TABLE_SCHEMA nella tua query INFORMATION_SCHEMA.COLUMNS, altrimenti otterrai risultati errati se lo stesso nome di tabella esiste in uno schema diverso. –
G, cosa succede se la colonna A o la colonna Y non esiste o viene cancellata? In questo caso sto ottenendo un errore. messaggio 207, livello 16, stato 1, riga 5 Nome colonna "A" non valido. – user811433