Also um mal auf das Problem einzugehen, zwischen NULL und NULL kann man zunächst mal nicht unterscheiden. Natürlich gibts einige Wege das mit Abfragen zu lösen, ich versuche mich mal an alternativen Varianten. Was Sinn macht muss man dann im jeweiligen Anwendungsfall entscheiden.
[CODE]IF EXISTS ( SELECT 1
FROM Tabelle
WHERE ZeigerGUID=IrgendEinProzess AND Datum=Datumswert
BEGIN
DECLARE @Wert UNIQUEIDENTIFIER
SET @Wert = ( SELECT Wert
FROM Tabelle
WHERE ZeigerGUID=IrgendEinProzess AND Datum=Datumswert )
END
ELSE
BEGIN
SELECT 'Fehler' AS Fehler
END[/CODE]
EXISTS ist gut um das Vorhandensein von Daten zu prüfen. Ist natürlich mindestens eine weitere Abfrage.
[CODE]DECLARE @Wert UNIQUEIDENTIFIER,
@isnull BIT
SELECT @Wert = Wert,
@isnull = 1
FROM Tabelle
WHERE ZeigerGUID=IrgendEinProzess AND Datum=Datumswert[/CODE]
In diesem Fall hätten wir eine Variable @isnull die auf 1 steht wenn der Wert aus der Tabelle NULL ist. Wenn es keinen Wert in der Tabelle gibt müssten eigentlich beide Variablen NULL sein.
Dann gäbe es auch noch isnull() als Funktion mit der man einen standard Wert vergeben könnte, das hilft dir aber nicht beim Unterscheiden.