Delete From From - Precisazione

Posto qualche precisazione (prima che qualcuno si spazzoli il database!!!)

Nel mio vecchio post spiegavo come risolvere un problema della cancellazione via TSQL tramite l'utilizzo della Delete From From.

Tutto ok, ci tengo solo a precisare che la sintassi da utilizzare nella clausola di Where della seconda From, infatti questa deve essere una join, ad esempio:

Delete 
From TabellaA 
From TabellaA A join TabellaB B on A.Kiave = B.Kiave

La cancellazione non funziona correttamente se si spefica un'istruzione del tipo:

Delete 
From TabellaA 
From (Select A.* From TabellaA , TabellaB B Where A.Kiave = B.Kiave) X

o del tipo:

Delete 
From TabellaA 
From Vista

anche se "Vista" viene creata così:

CREATE VIEW dbo.Vista
AS
SELECT A.Kiave, A.Descrizione FROM TabellaA AS A JOIN dbo.TabellaB AS B ON A.Kiave = B.Kiave

In entrambe gli ultimi due casi scrivo che la cancellazione non funziona correttamente in quanto andrebbe ad interessare tutti i record della tabella TabellaA e non solo quelli interessati dalla join con TabellaB.

 

Riccardo.

«luglio»
domlunmarmergiovensab
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789