我有一个存储过程,其中包含一个游标循环通过SQL记录并填充字符串,我将稍后用作我的电子邮件文本。我试图打印出来验证之前,我可以继续它,但它似乎不填充字符串。下面是在SQL Server 2005存储过程中的SQL游标填充字符串变量
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
这是一个可以让你在SQL中疯狂的人。 NULL加上任何等于NULL,字符串的默认值为NULL。大抓@Dave Markle! – 2011-01-07 20:13:47
非常感谢您的快速回复:)它现在正常工作:) – Deepak 2011-01-07 20:23:46