CREATE PROCEDURE dbo.My_SP_Clear ASif YesterDay=0
UPDATE tb_Stie SET UPExp=100
else
UPDATE tb_Stie SET UPExp=(ToDay-YesterDay)/YesterDay
UPDATE tb_Stie SET UPExp=100
else
UPDATE tb_Stie SET UPExp=(ToDay-YesterDay)/YesterDay
定义一个游标,取出表2中的全部唯一的外键。declare @FK_id intDeclare myCursor Cursor For
Select distinct FK_id from table2open myCursor
fetch next from mycursor into @FK_idwhile @@fetch_status = 0
begin
Delete from table2 where FK_id = @FK_ID and PK_ID not in (select top 50 PK_ID from table2 where FK_ID = @FK_ID order by PK_ID DESC)
fetch next from mycursor into @id
end
CLOSE addr_Cursor
DEALLOCATE addr_Cursor
fetch next from mycursor into @FK_idFK_ID 表示外键字段。PK_ID代表 table2的主键字段。
不太懂,能不能麻烦解释一下,不好意思,我没用过游标的
在关键字 'in' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'order' 附近有语法错误。
declare @i int,@str varchar(8000),@strcol varchar(8000)
set @i=1
set @str=''
set @strcol=''
select
@i=(case when @strcol<>FID then 1 else @i+1 end),
@strcol=FID,
@str=(case when @I<=50 then @str+cast(id as varchar)+',' else @str+''end )
from 表2
order by FID,id desc
if @str<>''
set @str =left(@str,len(@str)-1) exec('delete 表2 where id not in ('+@str+')')