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.
posted @ martedì 15 luglio 2008 14:52