ross_liu
ross_liu
采纳率88.9%
2020-10-20 16:56 浏览 60

sqlserver 列名是一个传入值的,并且传入值是数字的

declare @aa varchar(10);
select @aa=SUBSTRING('2020-10-13 00:00:00',9,2);--@aa 算出来是13.我下面的列名就是13;这样写报列名无效。去掉[]符号,算出来的结果又不对
update MANEXTRADAY set [@aa] =1
where cod_emp='318' and ym=SUBSTRING('2020-10-13 00:00:00',0,8) ;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答 默认 最新

  • qq_23126581 郭老师的小迷弟雅思莫了 2020-10-20 17:18
    update MANEXTRADAY set [@aa] =1      set后面跟的是列名,你要确保这个列名字段数据库表表中存在
    
    你可以修改成
    update MANEXTRADAY set xx =SUBSTRING('2020-10-13 00:00:00',9,2)
    where cod_emp='318' and ym=SUBSTRING('2020-10-13 00:00:00',0,8) ;
    
    
    点赞 评论 复制链接分享
  • ross_liu ross_liu 2021-01-11 10:20

    我想得到的是列名,然后把列名下面的数据改成1;你那样修改是把xx改成列名

     

    update MANEXTRADAY set [13] =1
    where cod_emp='318' and ym=SUBSTRING('2020-10-13 00:00:00',0,8) ;
    点赞 评论 复制链接分享

相关推荐