及求解:sqlServer中语句报错,错在哪里?

[复制链接]
查看11 | 回复3 | 2011-9-13 02:19:17 | 显示全部楼层 |阅读模式
执行语句UPDATEXERP_ACNTASETA.DISABLEFLAG=(\'1\')WHEREA.ACNTNO=\'20120101-0101\'报错:消息102,级别15,状态1,第1行\'A\'附近有语法错误。注:我是在sqlserver2008中执行的还有,SELECT*FROMXERP_ACNT结果为空,可XERP_ACNT表中有数据啊,为什么?
回复

使用道具 举报

千问 | 2011-9-13 02:19:17 | 显示全部楼层
把别名A全部去掉,如果必须要A改成UPDATEASETA.DISABLEFLAG=(\'1\')FROMXERP_ACNTAWHEREA.ACNTNO=\'20120101-0101\'
回复

使用道具 举报

千问 | 2011-9-13 02:19:17 | 显示全部楼层
把A去掉,把所有A.都去掉
回复

使用道具 举报

千问 | 2011-9-13 02:19:17 | 显示全部楼层
\'A\'附近有语法错误这个错误原因应该为:在update语句不支持UPDATEXERP_ACNTA这种写法语句改为:UPDATEXERP_ACNTSETDISABLEFLAG=(\'1\')WHEREACNTNO=\'20120101-0101\'试试。对于:SELECT*FROMXERP_ACNT结果为空,可XERP_ACNT表中有数据啊这个问题我认为只要表XERP_ACNT表中有数据SELECT*FROMXERP_ACNT结果就一定有值你出现这个问题有可能你在执行SELECT*FROMXERP_ACNT语句前没有use数据库(这个数据为XERP_ACNT表对应的数据库)。就是你不先指定一下数据库你执行查询语句时数据库根本不清楚要查找那个数据库中的表。追问在sqlserver中不支持简称这样的查询吗?selectXERP_ACNT就可以啊UPDATEXERP_ACNTA在oracle中也可以啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行