满意答案
haiis
2015.11.02
采纳率:57% 等级:12
已帮助:5103人
1234567891011121314151617--其实你可以说的更清楚点,你要实现什么?Declare @ID int,@filename VArchar(100)Declare @Cmd VArchar(1000)DECLARE Cur CURSOR FOR Select ID,filename From 表 Order By id --这句Select是你要查询出来的数据并排序OPEN CurFETCH NEXT FROM Cur INTO @ID,@filenameWHILE @@FETCH_STATUS = 0BEGIN --这里写你依次要执行的命令 Set @Cmd='' Exec (@cmd) FETCH NEXT FROM Cur INTO @ID,@filenameEND CLOSE CurDEALLOCATE Cur追问: 我是想要依次删除ID为1到4的单据记录,此前的SQL语句如下:
--1、定义单据ID值
@id=1 --(应收1,预收2,……)
--2、定义单据属性值
--当@id=1时,@frp=1,@ftype=1,当@id=2时,@frp=1,@ftype=5,……
--3、删除单据
Delete t_RP_Contact where FRP =@frp and FType =@ftype
追答: 123456789101112131415161718192021222324252627282930--那个字符串拆分的函数,在这可以使用--你得到的id是一个字符串比如A\B\C\D\E\F--那么这个字符串里有A就删掉A对应的数据,有B就删除B对应的数据--对应关系是,如果是A,则FRP=什么,FType=什么--是不是这个意思Declare @ID int,@Col VArchar(100)Declare @Cmd VArchar(1000)DECLARE Cur CURSOR FOR Select * from dbo.f_split1('A\B\C\D\E\F','\') --这句Select是你要查询出来的数据并排序OPEN CurFETCH NEXT FROM Cur INTO @ID int,@Col WHILE @@FETCH_STATUS = 0BEGIN Delete t_RP_Contact where FRP = Case @Col When ='A' then 1 When ='B' then 2 When ='C' then 3 else 其他 End and FType = Case @Col When ='A' then 1 When ='B' then 2 When ='C' then 3 else 其他 End FETCH NEXT FROM Cur INTO @ID,@filenameEND CLOSE CurDEALLOCATE Cur
00分享举报