请教语法问题

k39k39 2004-07-29 02:14:29
代码如下:

case @son
when 1 then
begin
update online set endtime=getdate(),username=@username,ip=@ip,status=@status where sessionid=@sid
end
when 0 then
begin
insert into online(sessionid,endtime,ip,status,username) values(@sid,getdate(),@ip,@status,@username)
end
else
begin
delete from online where sessionid=@sid
insert into online(sessionid,endtime,ip,status,username) values(@sid,getdate(),@ip,@status,@username)
end
end


服务器: 消息 156,级别 15,状态 1,过程 uponline,行 20
在关键字 'case' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 uponline,行 25
在关键字 'when' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 uponline,行 29
在关键字 'else' 附近有语法错误。
服务器: 消息 156,级别 15,状态 1,过程 uponline,行 34
在关键字 'end' 附近有语法错误。

请问该怎么修改
...全文
139 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzs8896 2004-08-01
  • 打赏
  • 举报
回复
case @son when 1 then update...
else case when 0 then insert...
else delete.....
end end end
zhangzs8896 2004-08-01
  • 打赏
  • 举报
回复
case @son=1 when 1 then update...
else case when 0 then insert...
else delete.....
end end end

肥仔胧 2004-08-01
  • 打赏
  • 举报
回复
TO wtadminxjeri(P42.4) 我又学到了一点tks
haonanernet 2004-07-31
  • 打赏
  • 举报
回复
关注...
wtadminxjeri 2004-07-29
  • 打赏
  • 举报
回复
若是自定义函数那就不能使用象getdate()这样的不确定性内部函数

可以放入视图
create view view1 as
SELECT GETDATE() AS 系统时间
go

在自定义函数可以从视图里取出系统时间
k39k39 2004-07-29
  • 打赏
  • 举报
回复
哪怎么取当前时间请问?
pbsql 2004-07-29
  • 打赏
  • 举报
回复
if @son=1
update ...
else
if @son=0
insert into ...
else
begin
delete from ...
insert into ...
end
WangZWang 2004-07-29
  • 打赏
  • 举报
回复
改成If试试,
你用在何地方,把所有代码贴出看看
getdate()不能用在自定义函数中

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧