使用select中游标循环的变量

时间:2013-08-14 20:33:38

标签: sql sql-server-2005 cursor

这就是我拥有的,我想要做的是在我的选择中使用[Value]。我不确定在select语句中究竟要使用什么!谢谢!

DECLARE
TCursor CURSOR FOR
  SELECT [Value] FROM [dbo].[SPLIT] (';', @SplitVar);
OPEN TCursor ;
FETCH NEXT FROM TCursor ;

WHILE @@FETCH_STATUS = 0
 BEGIN
  SET @ETo =
         (SELECT Email
            FROM mytable
           WHERE user= TCursor );
  EXEC sp_SendAn

我不确定这部分SELECT Email FROM mytable WHERE user= TCursor

1 个答案:

答案 0 :(得分:0)

将光标值提取到变量中:

DECLARE @curvar VARCHAR(50)
DECLARE
TCursor CURSOR FOR
  SELECT [Value] FROM [dbo].[SPLIT] (';', @SplitVar);
OPEN TCursor ;
FETCH NEXT FROM TCursor INTO @curvar;

WHILE @@FETCH_STATUS = 0
 BEGIN
  SET @ETo =
         (SELECT Email
            FROM mytable
           WHERE user= @curvar );
  EXEC sp_SendAn

不确定您打算如何处理@Eto,您可能需要使用:

  SET @ETo = '
         (SELECT Email
            FROM mytable
           WHERE user= '+@curvar+' )'
  EXEC sp_SendAn