我正在处理存储过程,我有一个包含更新查询的while循环:
@tmp_ID:表变量中的行ID
@secondcolumn(例如):pseudocode@gmail.com; pseudocode@hotmail.com;
@splitString(例如):伪代码(我在tblusers中搜索此值并返回真正的邮件地址)
tblusers中的真值:pseudocode@hotmail.com
@mailadresses必须具有此值:pseudocode@hotmail.com; pseudocode@hotmail.com;
查询应该将@tablename的@columnname更新为' pseudocode@hotmail.com; pseudocode@hotmail.com;'
if (CHARINDEX(';',@secondcolumn) > 0)
Begin
While(CHARINDEX(';',@secondcolumn) > 0)
begin
Set @splitMail =SUBSTRING(@secondcolumn,0,CHARINDEX(';',@secondcolumn))
Set @splitString = SUBSTRING(@splitMail,0,CHARINDEX('@',@splitMail))
Set @q_searchinUsers = 'Select Distinct @splitString_R = eMail from tblusers Where eMail like ''%' + @splitString + '%'''
EXEC sp_executesql @q_searchinUsers , N'@splitString_R nvarchar(max) output',@splitString_R OUTPUT
Set @mailadresses= @mailadresses+ @splitString_R +';'
SET @secondcolumn = REPLACE(@secondcolumn,@splitMail + ';' , '')
end
Set @q_updateQuery = 'Update '+ quotename(@tablename) +' Set '+@columnname+' = ''' + @mailadresses+ ''' Where ID = ' + convert(varchar,@tmp_ID) + ''
Exec sp_executesql @q_updateQuery
End
当我运行程序时,它说''命令已成功完成。'但它并没有更新表格。
提前致谢。