Declare @dav as varchar(50)   ---定义变量,用来保存从游标中取得的值Declare  cursor5 cursor for select fl from table   ---定义游标
 
open  cursor5   ---打开游标fetch  cursor5 into @pdav   while @@fetch_status=0  ---循环读取值
begin
         exec('delete ' +@表名+' where .....')---执行一定的操作
         
       fetch cursor5 into @dav
endclose  cursor5  ---关闭游标Deallocate Cursor5    ---删掉游标

解决方案 »

  1.   

    declare @s varchar(8000)
    set @s=''
    select @s=@s+'delete '+tablename+';' from tableindex
    exec(@s)
      

  2.   

    对于这样的处理,用cursor解决就好了,效率不会慢的。cursor从源表取数花费主要在select上面,这样的cost只有一次,所以你的select如果没有问题,没有什么效率的问题。
      

  3.   

    '号怎样写到一个字符串中啊?
    例如
    exec('delete from [' +@TableName+'] where detailtime>2005-1-1')---执行一定的操作
    怎样将‘2005-1-1’需要的“'”号添加进去?????