Zhen
Lt. Junior Grade
- Registriert
- Aug. 2009
- Beiträge
- 299
Hallo lieber CBler,
schon eine Weile her, dass ich hier nach Hilfe gefragt habe...
Ich hab ein kleines Problem, ich schreibe gerade ein SQL-Script in Microsoft SQL Server Management Studio. Als Server auf dem es ausgeführt wird kommt der "Microsoft SQL Server 2008" zum Einsatz.
Das hier ist jetzt mal ein Ausschnitt aus meinem Script:
Und nun das Problem: ich kann da tun und lassen was ich will, aber das Script springt nicht in die WHILE-Schleife rein. Wenn ich aber 1=1 angebe, dann kommts schon rein (hängt sich aber selbstverständlich auf da es endlos weiter geht - hier funktionieren die IF Abfragen noch nicht korrekt)
Hoffe ihr könnt mir weiterhelfen und bedanke mich schon mal vielmals
Okay hat sich erledigt... ich verstehe zwar immernoch nicht warum die While-Schleife @variable = null nicht schluckt, aber @variable = '' hat es kapiert.
Vielleicht kann mich hier ja mal jemand aufklären, da (T-)SQL nicht unbedingt mein Fachgebiet ist.
schon eine Weile her, dass ich hier nach Hilfe gefragt habe...
Ich hab ein kleines Problem, ich schreibe gerade ein SQL-Script in Microsoft SQL Server Management Studio. Als Server auf dem es ausgeführt wird kommt der "Microsoft SQL Server 2008" zum Einsatz.
Das hier ist jetzt mal ein Ausschnitt aus meinem Script:
PHP:
DECLARE @panum AS VARCHAR(max);
DECLARE @plStartDat AS VARCHAR(20);
DECLARE @plEndDat AS VARCHAR(20);
DECLARE @min_date as varchar(20);
DECLARE @min_time as varchar(20);
DECLARE @preVal AS varchar(20);
DECLARE @newVal AS varchar(20);
...
SET @plStartDat = null;
WHILE ( @plStartDat = null )
BEGIN
PRINT 'While-Schleife begonnen';
/* kleinstes Datum und Zeit speichern */
SELECT @min_date = MIN( U_Date ) FROM #times_vals WHERE U_FieldKey = 'StartDate';
SELECT @min_time = MIN( U_Time ) FROM #times_vals WHERE U_FieldKey = 'StartDate' AND U_Date = @min_date;
/* vorherigen und neuen Änderungswert speichern */
SELECT @preVal = U_PreValue, @newVal = U_NewValue FROM #pps_times_vals WHERE U_FieldKey = 'StartDate' AND U_Date = @min_date AND U_Time = @min_time;
/* prüfen ob preVal ein gültiges Datum ist und nicht kleiner als das Erstellungsdatum */
IF ( @preVal = null ) OR ( @preVal = '' ) OR ( @preVal = '00.00.0000' ) OR ( @preVal < @createDate )
BEGIN
PRINT '1. IF';
IF ( @newVal <> null ) AND ( @newVal <> '' ) AND ( @newVal <> '00.00.0000' ) AND ( @newVal >= @createDate )
BEGIN
PRINT '2. IF';
SELECT @plStartDat = U_newValue FROM #pps_times_vals WHERE U_FieldKey = 'StartDate' AND U_Date = @min_date AND U_Time = @min_time;
BREAK;
END
ELSE
BEGIN
PRINT 'ELSE vom 2. IF';
DELETE FROM #pps_times_vals WHERE U_FieldKey = 'StartDate' AND U_Date = @min_date AND U_Time = @min_time;
END
END
ELSE
BEGIN
PRINT 'ELSE vom 1. IF';
SELECT @plStartDat = U_PreValue FROM #pps_times_vals WHERE U_FieldKey = 'StartDate' AND U_Date = @min_date AND U_Time = @min_time;
BREAK;
END
END
...
Und nun das Problem: ich kann da tun und lassen was ich will, aber das Script springt nicht in die WHILE-Schleife rein. Wenn ich aber 1=1 angebe, dann kommts schon rein (hängt sich aber selbstverständlich auf da es endlos weiter geht - hier funktionieren die IF Abfragen noch nicht korrekt)
Hoffe ihr könnt mir weiterhelfen und bedanke mich schon mal vielmals
Ergänzung ()
Okay hat sich erledigt... ich verstehe zwar immernoch nicht warum die While-Schleife @variable = null nicht schluckt, aber @variable = '' hat es kapiert.
Vielleicht kann mich hier ja mal jemand aufklären, da (T-)SQL nicht unbedingt mein Fachgebiet ist.