sql server创建一个存储过程pro7, 将所有员工的基本工资提高20%,要求增加的幅度不超过300元。调用该存储过程,要求将每名员工调薪前后的工资输出到屏幕(要使用游标)但是结果说@涨幅 语法错误,close也有语法错误,不知道要怎么改。
表名是emp
if (exists (select * from sys.objects where name = 'pro7'))
drop proc pro7
go
create proc pro7
as
declare newsal cursor FOR select 姓名, 基本工资 from emp;
declare @涨幅 char(5);
declare @涨后的工资 char(5);
declare @name char(5);
declare @vsal char(5);
open newsal;
fetch newsal into @涨幅,@涨后的工资;
WHILE(@@FETCH_STATUS = 0)
begin
@涨幅=@vsal * 0.2
if(@涨幅<300 or @涨幅=300)
update emp set 基本工资 = 基本工资+@涨幅 where 姓名=@name;
print '员工:'+@name+'涨了'+@涨幅+'的工资';
end
CLOSE mycursor
DEALLOCATE mycursor
go
```
數字類的不是應該用 decimal 嗎?怎麼用 char 呢?