关于SQLserver的字符串怎么转换为表的列名的问题

  最近学了下数据库,为了练习下T-SQL,也是为了管理班级的需要,有所有课程学生绩点(S#,姓名,课程名。。。)与学生每门课程绩点(S#,课程,绩点)两个表,我先将数据统计于表一中,由于有时从第一个表向第二个表插入些个别数据时,或者更新些数据时有点麻烦,于是就想能不能一步完成,我就摸索创建了个存储过程,完成了目标。

T-SQL如下:

CREATE procedure [dbo].[add_gpa] @姓名 char(20),@课程 char(20),@绩点 float as
declare @学号 char(20)
begin 
select @学号=a.S# from 学生所有信息 a where a.Sname=@姓名      //从学生信息表中通过姓名获得学号
select @学号
exec('update 所有课程学生绩点  set '+@课程+ '='+ @绩点+ ' where S#='+@学号)
update 学生每门课程绩点 set gpa=@绩点 where S#=@学号 and subject= @课程
end

GO

   实质上,困难点就在怎么将字符串变为列名,经过尝试后用exec(),可以解决这个问题,网上搜到的解决方案。

SQL code
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值