Zwei Anfängerfragen

16/03/2008 - 11:20 von Thorsten Thiel | Report spam
Hallo,

Frage1:
Ich möchte gerne alle Datensatze aus einer Tabelle Kunden ermitteln, deren
Name nicht mit einem Buchstabe beginnt.

Frage2:
Ich habe eine Tabelle Kunden, und eine Tabelle KundenTelefonnummern. SQL
Server hat wohl automatisch erkannt dass zwischen diesen beiden Tabellen
über die Spalte Kunden_ID eine Beziehung besteht.
Möchte ich nun einen Kunden löschen, funktioniert das nicht, da noch ein
oder mehrere Datensàtze in der Tabelle KundenTelefonnummern existieren.
Diese muss ich zuerst löschen.
Nun würde ich dafür gerne einen Trigger definieren. Ich hatte ihn so àhnlich
geschrieben:

CREATE TRIGGER TR_KundenLöschen
ON dbo.Kunden
FOR Delete
AS
DELETE FROM KundenTelefonnummern WHERE Kunden_ID = Kunden.Kunden_ID

Ich konnte den Trigger zwar speichern, aber funktioniert hatte er nicht. Ich
erhielt trotzdem die Fehlermeldung wegen einer bestehnder Beziehung. Wann
wird der Trigger eigentlich ausgeführt? Vor oder nach dem Löschen. Kann man
das evtl. einstellen?

Vielleicht kann mir ja jemand etwas unter die Arme greifen.

Gruß Thorsten
 

Lesen sie die antworten

#1 Hannes Brunner
16/03/2008 - 14:10 | Warnen spam
Hallo Thorsten

Thorsten Thiel schrieb:
Hallo,

Frage1:
Ich möchte gerne alle Datensatze aus einer Tabelle Kunden ermitteln, deren
Name nicht mit einem Buchstabe beginnt.



SELECT <Feldliste>
FROM Kunden
WHERE Name NOT LIKE '[A-Za-z]%'

Frage2:
Ich habe eine Tabelle Kunden, und eine Tabelle KundenTelefonnummern. SQL
Server hat wohl automatisch erkannt dass zwischen diesen beiden Tabellen
über die Spalte Kunden_ID eine Beziehung besteht.
Möchte ich nun einen Kunden löschen, funktioniert das nicht, da noch ein
oder mehrere Datensàtze in der Tabelle KundenTelefonnummern existieren.
Diese muss ich zuerst löschen.
Nun würde ich dafür gerne einen Trigger definieren.



Trigger? Version 2000 oder neuer vorausgesetzt, kannst du bei der
referenziellen Integritàt mit einer Löschweitergabe arbeiten, dann geht
das Löschen in abhàngigen Tabellen automatisch.

Gruß
Hannes

Ähnliche fragen