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

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条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 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) ;
    
    
    评论

报告相同问题?