Stored procedures in SQL Server Errors Unsolved -


  create function chi_x2    (   @a1 int,   @b1 int,   @a2 int,   @b2 int   )   returns int     begin   -- declare return variable here   declare @result int    declare @tr1 int;   declare @tr2 int;   declare @tc1 int;   declare @tc2 int;   declare @ca1 int;   declare @ca2 int;   declare @cb1 int;   declare @cb2 int;   declare @xi int;   declare @nt int;    create procedure [dbo].[pro1]     begin       set @tr1 = @a1+@b1      set @tr2 = @a2+@b2      set @tc1 = @a1+@a2      set @tc2 = @b1+@b2      set @nt = @tr1+@tr2      set @ca1 =(@tc1/@nt*@tr1)      set @ca2 =(@tc1/@nt*@tr2)      set @cb1 =(@tc2/@nt*@tr1)      set @cb2 =(@tc2/@nt*@tr2)      set @xi =((power((@a1 -@ca1),2)/@ca1)+(power((@a2 -@ca2),2)/@ca2)+(power((@b1-@cb1),2)/@cb1)+(power((@b2 -@cb2),2)/@cb2))      -- add t-sql statements compute return value here     select @result = @xi    -- return result of function   return @result     --end chi_x2    create procedure [dbo].[pro2]     begin       declare @max_chi int      declare @maxpos int      declare @n int      declare @swv_cur_out_sessionnumber varchar(255)      declare @swv_cur_out_sessioncount varchar(255)      declare @swv_cur_out_timespent varchar(255)      declare @swv_cursor_var1 cursor      declare @swv_cur_in_sessionnumber varchar(255)      declare @swv_cur_in_sessioncount varchar(255)      declare @swv_cur_in_timespent varchar(255)      delete ch_table      commit      set @swv_cursor_var1 = cursor  select sessionnumber, sessioncount, timespent clusters  order sessionnumber asc      open @swv_cursor_var1      fetch next @swv_cursor_var1 @swv_cur_out_sessionnumber,@swv_cur_out_sessioncount,@swv_cur_out_timespent      while @@fetch_status = 0      begin         set @max_chi = -999         set @maxpos = null         set @swv_cursor_var1 = cursor  select sessionnumber, sessioncount, timespent clusters  order sessionnumber asc         open @swv_cursor_var1         fetch next @swv_cursor_var1 @swv_cur_in_sessionnumber,@swv_cur_in_sessioncount,@swv_cur_in_timespent         while @@fetch_status = 0         begin            select   @n = count(*) from(select x1 x ch_table union select x2 ch_table) tabal            x = @swv_cur_out_sessionnumber or x = @swv_cur_in_sessionnumber    if @n = 0   begin     -- set @xi = round(chi_x2(cur_out.sessioncount,cur_out.timespent,cur_in.sessioncount,cur_in.timespent),2)      if @xi > @max_chi      begin         set @max_chi = @xi         set @maxpos = cur_in.sessionnumber      end   end       fetch next @swv_cursor_var1 @swv_cur_in_sessionnumber,@swv_cur_in_sessioncount,@swv_cur_in_timespent         end   if @max_chi > -999   begin   insert ch_table(sno, p, t) values(cur_out.sessionnumber, @maxpos, @max_chi)       commit   end     close @swv_cursor_var1   fetch next @swv_cursor_var1 @swv_cur_out_sessionnumber,@swv_cur_out_sessioncount,@swv_cur_out_timespent      end      close @swv_cursor_var1    end 

i come mysql background, , have began migrating sql server.

i can't, life of me, find example of stored procedure following in sql server: - multi-lined - contains both input , output parameters - sets 1 of output parameters within stored procedure

can provide insight? i.e. why following not work?

msg 156, level 15, state 1, procedure chi_x2, line 31
incorrect syntax near keyword 'procedure'.

nsg 156, level 15, state 1, procedure chi_x2, line 56
incorrect syntax near keyword 'procedure'.

msg 102, level 15, state 1, procedure chi_x2, line 112 incorrect syntax near 'end'.

thanks in advance!

sure, here's basic introduction ouptput parameters.

here's short , sweet of it. note output keyword on output parameter:

create procedure dbo.uspmyproc @someparameter varchar(10), @theoutputparameter varchar output   -- stuff   select @theoutputparameter = somecolumn   -- or   set @theoutputparameter = someresult return 

Comments

Popular posts from this blog

design - Custom Styling Qt Quick Controls -

Unable to remove the www from url on https using .htaccess -