初学者请教:从一个表中逐行取数据,然后调用存储过程。请问SQL 该怎么写

解决方案 »

  1.   

    DECLARE cur cursor FOR 
       SELECT xx FROM tb;
    OPEN curDECLARE @xx intFETCT NEXT FROM cur INTO @xx;WHILE @@FETCH_STATUS=0
      BEGIN
           EXEC usp_name @xx;
           FETCT NEXT FROM cur INTO @xx;
      ENDCLOSE cur;
    DEALLOCATE cur;
      

  2.   

    --用游标
    declare @str varchar(100), @str1 varchar(100)
    --定义游标
    declare DZCursor CURSOR  for SELECT col1,col2 FROM test where test_str='xxx' 
    open  DZCursor 
    fetch next from DZCursor into @str,@str1 
    while @@fetch_status=0 
    begin 
    --执行你的存储过程语句
    fetch next from DZCursor into @str ,@str1
    end 
    --关闭游标
    close DZCursor 
    --删除游标
    deallocate DZCursor 
      

  3.   

    很好很强大
    --用游标
    declare @str varchar(100), @str1 varchar(100)
    --定义游标
    declare DZCursor CURSOR  for SELECT col1,col2 FROM test where test_str='xxx' 
    open  DZCursor 
    fetch next from DZCursor into @str,@str1 
    while @@fetch_status=0 
    begin 
    --执行你的存储过程语句
    fetch next from DZCursor into @str ,@str1
    end 
    --关闭游标
    close DZCursor 
    --删除游标
    deallocate DZCursor 
      

  4.   


    declare @tb table (id int,name varchar(10))
    declare c_k cursor  select * from 表
    open c_k
    fetch  from c_k into @tb
    while @@FETCH_STATUS=0
    begin
      exec ''
      fetch from c_k into @tb
    end
    close  c_k
    deallocate c_k
      

  5.   

    用动态语句declare @sql varchar(8000)
    set @sql=''
    select @sql=' exec 存储过程 ' + 参数属性 from tb
      

  6.   

    http://download.csdn.net/source/1227307
    到这里看看有没有你的解决方案,这里搜集了大乌龟,诌老大等大牛们的很多sql语句