Procedure - помогите найти ошибку

12344321Go
Дата: 30.01.2009 17:14:21
CREATE PROCEDURE WZ_CONNECT_MEMB
@memb___id varchar(10),
@ServerName  varchar(50),
@IP varchar(20)	

 AS
Begin	
set nocount on
	Declare  @find_id varchar(10)	
	Declare  @ConnectStat tinyint
	Declare  @find_id1 nvarchar(10)	

	Set @find_id = 'NOT'
	Set @find_id1 = 'NOT'
	Set @ConnectStat = 1

	select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id = 'NOT' )
	begin		
		insert into MEMB_STAT (memb___id,ConnectStat,ServerName,IP,ConnectTM)
		values(@memb___id,  @ConnectStat, @ServerName, @IP, getdate())
	end
	else		
		update MEMB_STAT set ConnectStat = @ConnectStat,
					 ServerName = @ServerName,IP = @IP,
					 ConnectTM = getdate()
       	 where memb___id = @memb___id
		end

	select @find_id1 = S.memb___id from Count1 S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id1 = 'NOT' )
	begin	
		insert into Count1 (memb___id)
		values(@memb___id)
	end
	else		
		update Count1 set Day1 = Day1 + 1,Week1 = Week1 + 1,Month1 = Month1 + 1
       	 where IP = @IP     
       	 end
	
GO
Ругается
Incorrect syntax near the keyword 'end'
Помогите найти ошибку, я новичок в mssql
Glory
Дата: 30.01.2009 17:15:39
Почему после else все end-ы без begin-а ?
12344321go
Дата: 30.01.2009 17:18:05
Заменил на -
CREATE PROCEDURE WZ_CONNECT_MEMB
@memb___id varchar(10),
@ServerName  varchar(50),
@IP varchar(20)	

 AS
Begin	
set nocount on
	Declare  @find_id varchar(10)	
	Declare  @ConnectStat tinyint
	Declare  @find_id1 nvarchar(10)	

	Set @find_id = 'NOT'
	Set @find_id1 = 'NOT'
	Set @ConnectStat = 1

	select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id = 'NOT' )
	begin		
		insert into MEMB_STAT (memb___id,ConnectStat,ServerName,IP,ConnectTM)
		values(@memb___id,  @ConnectStat, @ServerName, @IP, getdate())
	end
	else	
	Begin	
		update MEMB_STAT set ConnectStat = @ConnectStat,
					 ServerName = @ServerName,IP = @IP,
					 ConnectTM = getdate()
       	 where memb___id = @memb___id
		end

	select @find_id1 = S.memb___id from Count1 S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id1 = 'NOT' )
	begin	
		insert into Count1 (memb___id)
		values(@memb___id)
	end
	else
	Begin			
		update Count1 set Day1 = Day1 + 1,Week1 = Week1 + 1,Month1 = Month1 + 1
       	 where IP = @IP     
       	 end
	
GO
Еррор...
Гавриленко Сергей Алексеевич
Дата: 30.01.2009 17:20:04
12344321Go
Еррор...
Нет такого серверного сообщения.
Glory
Дата: 30.01.2009 17:20:10
12344321go
Заменил на -
[src]
Еррор...

Еще раз считайте общее количество begin и end ?
Konst_One
Дата: 30.01.2009 17:30:12
.... 
             where I.memb___id = @memb___id
END
...
Konst_One
Дата: 30.01.2009 17:32:44
поторпился ;)

верхний BEGIN уберите просто в начале процедуры
12344321Go
Дата: 30.01.2009 17:37:40
CREATE PROCEDURE WZ_CONNECT_MEMB
@memb___id varchar(10),
@ServerName  varchar(50),
@IP varchar(20)	

 AS
	
set nocount on
	Declare  @find_id varchar(10)	
	Declare  @ConnectStat tinyint
	Declare  @find_id1 nvarchar(10)	

	Set @find_id = 'NOT'
	Set @find_id1 = 'NOT'
	Set @ConnectStat = 1

	select @find_id = S.memb___id from MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id = 'NOT' )
	begin		
		insert into MEMB_STAT (memb___id,ConnectStat,ServerName,IP,ConnectTM)
		values(@memb___id,  @ConnectStat, @ServerName, @IP, getdate())
	end
	else	
	Begin	
		update MEMB_STAT set ConnectStat = @ConnectStat,
					 ServerName = @ServerName,IP = @IP,
					 ConnectTM = getdate()
       	 where memb___id = @memb___id
		end

	select @find_id1 = S.memb___id from Count1 S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id 
	       where I.memb___id = @memb___id


	if( @find_id1 = 'NOT' )
	begin	
		insert into Count1 (memb___id)
		values(@memb___id)
	end
	else
	Begin			
		update Count1 set Day1 = Day1 + 1,Week1 = Week1 + 1,Month1 = Month1 + 1
       	 where IP = @IP     
       	 end
	
GO
Пишет -
Invalid Column name 'IP'
Хотя она есть! ((((
Паганель
Дата: 30.01.2009 17:39:28
Немного не в тему, но...
12344321Go
я новичок в mssql
Рекомендую почитать про MERGE (Transact-SQL), пример Б вроде как раз Ваш случай
Я просто подумал... Вам, возможно, все равно, какую версию изучать, так может сразу 2008...