将 varchar 值 '*' 转换为数据类型为 int 的列时发生语法错误。

createtablesc(snochar(9),cnochar(4),gradesmallint,primarykey(sno,cno))insertintosc(sn... create table sc
(sno char(9),
cno char(4),
grade smallint,
primary key(sno,cno)
)
insert
into sc(sno,cno,grade)
values('95001','1','92')
insert
into sc(sno,cno,grade)
values('95001','2','85')
insert
into sc(sno,cno,grade)
values('95001','3','88')
insert
into sc(sno,cno,grade)
values('95002','2','90')
insert
into sc(sno,cno,grade)
values('95002','3','80')
select *from sc

建存储过程
CREATE PROCEDURE PRO_1
AS
update sc
set grade='A'
where grade>90 and grade<=100
update sc
set grade='B'
where grade>80 and grade<=90
update sc
set grade='C'
where grade>70 and grade<=80
update sc
set grade='D'
where grade>=60 and grade<=70
update sc
set grade='E'
where grade<60
运行时发生错误 --将 varchar 值 '*' 转换为数据类型为 int 的列时发生语法错误。
展开
 我来答
牧之卉0j1
2011-06-07 · TA获得超过1150个赞
知道大有可为答主
回答量:1689
采纳率:0%
帮助的人:1717万
展开全部
create table sc
(sno char(9),
cno char(4),
grade smallint,
primary key(sno,cno)
)
go
insert
into sc(sno,cno,grade)
values('95001','1','92')
insert
into sc(sno,cno,grade)
values('95001','2','85')
insert
into sc(sno,cno,grade)
values('95001','3','88')
insert
into sc(sno,cno,grade)
values('95002','2','90')
insert
into sc(sno,cno,grade)
values('95002','3','80')
go
select *from sc

--建存储过程
CREATE PROCEDURE PRO_1
AS
update sc
set grade='A'
where grade>90 and grade<=100
update sc
set grade='B'
where grade>80 and grade<=90
update sc
set grade='C'
where grade>70 and grade<=80
update sc
set grade='D'
where grade>=60 and grade<=70
update sc
set grade='E'
where grade<60

go
exec PRO_1
go
追问
和我写的有区别吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郭哥之子
2011-06-07 · TA获得超过143个赞
知道小有建树答主
回答量:461
采纳率:100%
帮助的人:189万
展开全部
grade smallint类型,而在存储过程中却将grade赋为字符型,当然报错了。
追问
如何解决?这是关键 不能隐性转换吗
追答
将 grade 设为 varchar类型就可以了,而比较的话用convert(int,grade)就能转化成int型了,再将A、B、C、D 赋给grade就不会报错了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式