无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。
IF(SELECTLEN(ISNULL(val,''))FROMt_testwherename='ATT')>0beginupdatet_testsetval=val+'...
IF (SELECT LEN(ISNULL(val, '')) FROM t_test where name = 'ATT') > 0
begin
update t_test set val = val + '123' where name = 'ATT'
end
else
begin
update t_test set val = '123' where name = 'ATT'
end
在Sql server里面运行正常,但在access中运行就出现如上错误。(无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。) 展开
begin
update t_test set val = val + '123' where name = 'ATT'
end
else
begin
update t_test set val = '123' where name = 'ATT'
end
在Sql server里面运行正常,但在access中运行就出现如上错误。(无效的 SQL语句;期待 'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'、或 'UPDATE'。) 展开
5个回答
展开全部
access的isnull不是那么用的
iif( IsNull(val), 0, val)
iif( IsNull(val), 0, val)
追问
后面判断语句怎么写?
也就是说IF (SELECT LEN(ISNULL(val, '')) FROM t_test where name = 'ATT') > 0 这个应该怎么改?谢谢!
追答
你先把if里面的语句在access里面单独执行,看看报错不.如果报错在执行我在这条.
我印象中应该是isnull的问题.因为两个数据库的isnull的用法不同.
SELECT LEN(iif( IsNull(val), '', val)) FROM t_test where name = 'ATT'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Sql server跟access有些函数用法啊什么的可能不一样吧, 还有就是access里面
update t_test set val = val + '123' where name = 'ATT'语句能执行么?
update t_test set val = val + '123' where name = 'ATT'语句能执行么?
追问
可以执行的!试过了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
access 只支持简单的SQL
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注 ,这个问题还真没碰到过
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
access不支持这些语句......
追问
那应该如何改呢,我的意思就是如果查到的字段是有值或空值对应不同的update语句。
追答
在程序里判断执行哪条update语句吧,单纯在access用sql语句好像实现不了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询