请问哪里错了???

xy328 2001-08-17 02:57:18
CREATE PROCEDURE UpdateTraffic
@Start datetime,
@endtime datetime,
@Serial_no varchar(50),
@Src_add varchar(50),
@Src_port varchar(50),
@Dst_addr varchar(50),
@Dst_port varchar(50),
@Date_len int,
@IPPacketSerial int,
@Data binary,
@Flag bit
AS
if not exists (select IPPacketSerial from Traffic
where IPPacketSerial = @IPPacketSerial)

begin
if @Flag
begin
insert Traffic (Start,endtime,Serial_no,Src_add,Src_port,Dst_addr,Dst_port,Date_len,IPPacketSerial,Data)
values(@Start,@endtime,@Serial_no,@Src_add,@Src_port,@Dst_addr,@Dst_port,@Date_len,@IPPacketSerial,@Data)

end
else
begin
insert Traffic (Start,endtime,Serial_no,Src_add,Src_port,Dst_addr,Dst_port,Date_len,Data)
values(@Start,@endtime,@Serial_no,@Src_add,@Src_port,@Dst_addr,@Dst_port,@Date_len,@Data)
end
end

else
begin
if @Flag
begin
update Traffic set Date_len = Date_len + @Date_len , endtime = @endtime
where IPPacketSerial = @IPPacketSerial
end
else
begin
update Traffic set Date_len = Date_len + @Date_len , endtime = @endtime , IPPacketSerial = null
where IPPacketSerial = @IPPacketSerial
end
end

提示说我的错误在 begin,else ,begin else 附近。请问哪里错了?
...全文
86 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pboy 2001-08-17
  • 打赏
  • 举报
回复
把你的if @Flag改成if @Flag=0


xy328 2001-08-17
  • 打赏
  • 举报
回复
我自己看出来了,if不能象C语言那样用 改成 if(@Flag = 1)就行了
fsb_12345 2001-08-17
  • 打赏
  • 举报
回复
没错啊
xy328 2001-08-17
  • 打赏
  • 举报
回复
我的问题是哪怕我写

if
begin
if
begin
end
else
begin
end
end
else
begin
if
begin
end
else
begin
end
end
也会提示那个错误
xzou 2001-08-17
  • 打赏
  • 举报
回复
建议你备份后,每次去掉一块begin......end,再提交,直到没错误为止,这样可以比较容易定位错误处。

34,590

社区成员

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

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