Ich habe eine gespeicherte Prozedur, die einen Cursor enthält, um SQL-Datensätze durchzulaufen, und füllt die Zeichenfolge, die ich später als E-Mail-Text verwenden werde. Ich versuche, es auszudrucken, um zu überprüfen, bevor ich damit fortfahren kann, aber es scheint die Zeichenfolge nicht zu füllen. Hier ist meine gespeicherte Prozedur in SQL Server 2005.SQL Cursor in Stored Procedure zum Auffüllen von String-Variablen
CREATE PROCEDURE [dbo].[spBody]
AS
DECLARE @MyCursor CURSOR
DECLARE @emailBody nvarchar(max)
DECLARE @statusName nvarchar(max)
DECLARE @deptCode nvarchar(max)
DECLARE @instructors nvarchar(max)
DECLARE @meetingTime nvarchar(max)
SET @MyCursor = CURSOR FAST_FORWARD For
Select StatusName, DeptCode, Instructors, Description from MyTable where StatusID = (select CAST(value AS INT) from Table2 where ConfigOption = 'RequiredStatus')
Open @MyCursor
FETCH NEXT FROM @MyCursor INTO @statusName, @deptCode, @instructors, @meetingTime
WHILE @@FETCH_STATUS = 0
BEGIN
SET @emailBody = @emailBody + @statusName + ' ' + @deptCode + ' ' + @instructors + ' ' + @meetingTime
FETCH NEXT FROM @MyCursor INTO @statusName, @deptCode, @instructors, @meetingTime
END
CLOSE @MyCursor
Print @emailBody
DEALLOCATE @MyCursor
Dies ist einer, der Sie verrückt in SQL fahren kann. NULL plus alles ist gleich NULL und der Standardwert für Strings ist NULL. Toller Fang @Dave Markle! –
Vielen Dank für die schnelle Antwort :) es funktioniert jetzt :) – Deepak
Klicken Sie einfach auf diese kleine Schaltfläche "Überprüfen" unter der Abstimmungsnummer, wenn Sie eine Chance bekommen :) –