DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: SQL | Thema: CHECK-Constraint-Problem | Von: Reiko Staudacher ( 14.03.2005 10:21)

Hallo,

ich habe ein Problem mit einem Check-Constraint mit SQL-Server 2000.

Ich habe eine Tabelle mit einem FK. Zu diesem FK können mehrere Einträge in der Tabelle vorkommen. Ein Feld der Tabelle stellt ein Workaround-Flag dar, daß aber pro FK-Wert nur 0 oder 1x gesetzt werden darf!

Die Tabelle:

<PRE>
ID (PK)
ProblemID (FK)
..
Workaround (Flag)
</PRE>

Nun wende ich folgende Abfrage im Query Analyzer an:

<PRE>
SELECT COUNT(IsWorkaround) AS AnzahlWorkarounds
FROM dbo.TProblemManagementSolutionDescriptions
WHERE (IsWorkaround = 1)
GROUP BY ProblemID
HAVING COUNT(IsWorkaround) <= 1
</PRE>

Das klappt auch wunderbar und liefert genau die Datensätze für die das Flag maximal 1x gesetzt ist.
Wenn ich diese Abfrage allerdings als Check-Constraint (dort allerdings mit COUNT(IsWorkaround > 1 da ich ja genau das verhindern möchte) anlege erhalte ich einen Fehler bei der Überprüfung der Bedingung.

Ich habe auch überlegt das mit einem AFTER INSERT bzw UPDATE-Trigger zu lösen. Allerdings finde ich nirgens ein geeignetes Beispiel für das Auslösen einer Exception per Trigger.

Weiß jemand Rat?

Gruß
Reiko


Betreff Von Datum
Re: CHECK-Constraint-Problem
Hi Reiko,<br><br>hast du so etwas schonmal probiert:<br><br>create trigger check_flag on Tabellenname for insert<br>as<br>if ((SELECT COUNT(IsWorkaround) FROM dbo.TProblemManagementSolutionDescriptions, inserted...
G. Guest 15.03.2005 09:10
Re: CHECK-Constraint-Problem
Hi Tom,<br><br>ein Rollback habe ich mir heute morgen mal überlegt. Dabei bin ich auf die Problematik mit der Meldungsweitergabe vom Backend an das Access-Frontend gestossen. Ich werde das aber heute mal...
G. Guest 16.03.2005 12:00

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Building und Connecting Know-how

© Copyright 2003 ppedv AG