ALTER PROCEDURE update_online @id int,@name varchar(20),@ip varchar(20),@ip1 varchar(20),@where varchar(100), @url varchar(100),@ie varchar(50),@os varchar(50),@ys bit as if @id is null begin if (select count(id) from online where name=@name)>0 update count set ip=@ip,ip1=@ip1,where=@where,url=@url,ie=@ie,os=@os,ys=@ys where name=@name else exec insert_online end else begin if (select count(id) from online where name=@name)=0 or @name='游客' update count set name=@name,ip=@ip,ip1=@ip1,where=@where,url=@url,ie=@ie,os=@os,ys=@ys where id=@id else update count set ip=@ip,ip1=@ip1,where=@where,url=@url,ys=@ys end 麻烦帮我看一下,总是提示我WHERE附近有语法错误.
ALTER PROCEDURE update_online @id int,@name varchar(20),@ip varchar(20),@ip1 varchar(20),@where varchar(100), @url varchar(100),@ie varchar(50),@os varchar(50),@ys bit,@i int as if @id is null begin if (select count(id) from online where name=@name)>0 exec('update count set ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ie='+@ie+',os='+@os+',ys='+@ys+' where name='+@name) else exec insert_online end else begin if (select count(id) from online where name=@name)=0 or @name='游客' exec('update count set name='+@name+',ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ie='+@ie+',os='+@os+',ys='+@ys+' where id='+@i) else exec('update count set ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ys='+@ys) end
@id int,@name varchar(20),@ip varchar(20),@ip1 varchar(20),@where varchar(100),
@url varchar(100),@ie varchar(50),@os varchar(50),@ys bit
as
if @id is null
begin
if (select count(id) from online where name=@name)>0
update count set ip=@ip,ip1=@ip1,where=@where,url=@url,ie=@ie,os=@os,ys=@ys where name=@name
else
exec insert_online
end
else
begin
if (select count(id) from online where name=@name)=0 or @name='游客'
update count set name=@name,ip=@ip,ip1=@ip1,where=@where,url=@url,ie=@ie,os=@os,ys=@ys where id=@id
else
update count set ip=@ip,ip1=@ip1,where=@where,url=@url,ys=@ys
end
麻烦帮我看一下,总是提示我WHERE附近有语法错误.
@id int,@name varchar(20),@ip varchar(20),@ip1 varchar(20),@where varchar(100),
@url varchar(100),@ie varchar(50),@os varchar(50),@ys bit,@i int
as
if @id is null
begin
if (select count(id) from online where name=@name)>0
exec('update count set ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ie='+@ie+',os='+@os+',ys='+@ys+' where name='+@name)
else
exec insert_online
end
else
begin
if (select count(id) from online where name=@name)=0 or @name='游客'
exec('update count set name='+@name+',ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ie='+@ie+',os='+@os+',ys='+@ys+' where id='+@i)
else
exec('update count set ip='+@ip+',ip1='+@ip1+',where='+@where+',url='+@url+',ys='+@ys)
end