求教sql server 可以把列名当做变量吗?

我有一个表,字段名是1,2,3,4,5,我想依次更新,怎么办,能不能updatetbset列变量='字符串',列变量++,这样实现?不能的话,要怎么实现?... 我有一个表,字段名是1,2,3,4,5,我想依次更新,怎么办,能不能update tb set 列变量='字符串',列变量++,这样实现?不能的话,要怎么实现? 展开
 我来答
szm341
推荐于2016-09-04 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5096万
展开全部
不可以,列名、表名都不能用变量,可以通过拼接字符,然后用exec来执行
如,exec('update tb set '+列名变量+'='''+字符类的变量值+''' where 条件')
更多追问追答
追问
列名变量+'='''为什么这里要有三个单引号?
追答
如果想输出一个单引号的字符,需要四个单引号,也就是在一对单引号内部,要表达一个单引号要用两个代表,拼接字符的时候,如果是字符的字段值,需要额外拼接两边的单引号,不然拼接后的结果会是列=值,而不是列='值'这样的效果
然后忘记说了,如果你的列名不是标准命名,那么需要用中括号括起来,所以要把中括号拼接进字符中,或者用QUOTENAME()函数,这个函数会自动给字符加上两端的中括号的
更改一下上面的代码
exec('update tb set '+QUOTENAME(列名变量)+'='''+字符类的变量值+''' where 条件')
ve_love
2013-01-27 · 超过49用户采纳过TA的回答
知道答主
回答量:306
采纳率:0%
帮助的人:124万
展开全部
存储过程可以实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式