Lets sagen, dass ich in der folgenden Tabelle haben:Prevent einzelne Zeile in SQL Server, aber lassen Sie andere Löschen von Zeilen in derselben Transaktion gelöscht werden
PKID | UID | FKID
-----------------
1 | ABC | 1
2 | BCD | 2
3 | CDE | 2
4 | DEF | 1
5 | EFG | 3
Was will ich tun Block mit einem Trigger löscht (oder andere Art und Weise, wenn es gibt einen besseren Weg, dies zu tun, aber nur für die Zeilen, wo FKID = 1 ist, aber immer noch andere Zeilen gelöscht werden können. Also, wenn jemand DELETE FROM sampleTable
tippt, würde ich nur die Zeilen 2, 3 und 5 löschen wollen, und 1 und 4 sollten bleiben.
uh, warum nicht 'löschen yourtable wo fkid <> 1'? –
Das ist seltsame Voraussetzung, aber wenn Sie das tun möchten, ist die Verwendung von "INSTED OF" Trigger der einzige Weg, den Sie gehen können. Würdest du bitte sagen, warum du das willst? – FLICKER
Sie müssen Ihren Anwendungsfall hier besser verstehen. Wer ist der "Jemand", der die betreffende DELETE-Anweisung eingeben kann? – dazedandconfused