create table test_1(c1 int,c2 varchar(100));
insert into test_1 values(1,'1+1');
insert into test_1 values(2,'1*3');
insert into test_1 values(3,'1-(1*3)');
insert into test_1 values(4,'1-(1/0)');
CREATE PROCEDURE sp_CountExp
@ExpStr varchar(8000),
@ decimal(19,2) out
as
declare @sql nvarchar(4000)
set @sql = N'set @ = ' + @ExpStr
exec SP_EXECUTESQL @sql ,N'@ decimal(19,2) out', @ out
select @
GO
CREATE PROCEDURE titles_cursor1 as
declare demo_cursor cursor for select c2 from test_1;
declare @biaodashi varchar(100);
declare @x decimal(10,2)
open demo_cursor
fetch next from demo_cursor into @biaodashi
while @@fetch_status=0
begin
exec dbo.sp_CountExp @biaodashi, @x out
update test_1 set c2=@x where current of demo_cursor;
fetch next from demo_cursor into @biaodashi;
end
close demo_cursor
DEALLOCATE demo_cursor
go