34,587
社区成员
发帖
与我相关
我的任务
分享
DECLARE @col1 VARCHAR(10),
@col1 VARCHAR(10)
BEGIN
DECLARE c_table1 CURSOR FOR
SELECT col1,col2 FROM table1
OPEN c_table1
FETCH NEXT FROM c_table INTO @col1,@col2
WHILE @@fetch_status=0
BEGIN TRANSACTION
PRINT @col1,@col2
EXEC sp_change @col1,@col2
IF @@ERROR=0
PRINT '处理成功'
FETCH NEXT FROM c_table INTO @col1,@col2
ELSE
ROLLBACK TRANSACTION
CLOSE c_table
DEALLOCATE c_table
END
GO
declare @tab table(ID int identity(1,1), col1 varchar(10),col2 varchar(10))
insert into @tab
select id, col1,col2 --需要传给存储过程的字段
from table1
declare @i int
declare @j int
set @i = 0
select @j = MAX(ID) from @tab
BEGIN TRANSACTION
while @i < @j begin
set @i = @i+1
set @col1= null
set @col2= null
select @col1=col1, @col2=col2 from @tab where ID = @i
exec sp_change @col1,@col2 --这个地方根据你的存储过程有output输出值,改下后面的写法
IF @@ERROR <>0
BEGIN
PRINT '处理不成功'
ELSE
PRINT '处理成功'
END
COMMIT TRANSACTION
GO
declare @out varchar(100)
exec sp_ChangeJqm '98f00b20','12345678',0, @out output
select @out