|
vandalesm
Starting Member
8 Posts |
Posted - 2004-10-13 : 22:26:42
|
| here is my stored proc----------------------------CREATE Procedure myStoreProc@gc as varchar(50),@f as varchar(50),@sy as varchar(50)AsSet Nocount Onif @f <> '' set @f = rtrim(ltrim(@f)) + '%'else set @f = '%'declare @gc_l as varchar(20)declare @gc as varchar(20)set @gc=@gcset @gc_l = @gc + '-L'set @gc = @gc + '-N'Declare @ctr as int --check if there is record foundSet @ctr = (select count(*) from table1 where fID like @f and gcUMN=@gc)IF @ctr < 1BEGIN select 2 as Status, 'No records found!' as Msg ReturnENDdeclare @count int, @error_var int, @rowcount_var intset @count=0set @error_var=0set @rowcount_var=0 begin tran update sts2003.dbo.student_gs set g_gentry=b.g_gentry from sts2003.dbo.student_gs a inner join table1 b on a.bio_recid=b.bio_recid and a.c_crsid=b.c_crsid and a.g_year=b.g_year and a.gcumn=b.gcumn where b.fid like @f and b.g_year=@sy and (a.gcumn=@gc + '-N' or a.gcumn=@gc + '-COM' or a.gcumn=@gc + '-CON') select @error_var=@@error, @rowcount_var=@@rowcount if @error_var <> 0 begin rollback tran select '1' as Status, 'Error' as Msg return end set @count = @rowcount_var update sts2003.dbo.student_gs set g_gentry=case when isnumeric(a.G_gENTRY)='1' then (select GR_g from tblgScale where GR_SCALETO >= a.G_gENTRY AND GR_SCALEFR <= a.G_gENTRY) else a.G_gENTRY end from sts2003.dbo.student_gs b inner join table1 a on a.bio_recid=b.bio_recid and a.c_crsid=b.c_crsid and a.g_year=a.g_year where a.fid like @f and a.g_year=@sy and a.gcumn=@gc + '-N' and b.gcumn=@gc + '-L' select @error_var=@@error, @rowcount_var=@@rowcount if @error_var <> 0 begin rollback tran select '1' as Status, 'Error' as Msg return end set @count = @count + @rowcount_var insert into sts2003.dbo.student_gs(C_CRSID, BIO_RECID, G_YEAR, gcUMN, G_gENTRY, G_DATEENTRY,G_TIMEENTRY,G_gLEVEL,G_DTCOMPLETE,G_SCHOOLID) select a.C_CRSID, a.BIO_RECID, a.G_YEAR, a.gcUMN, a.G_gENTRY, a.G_DATEENTRY, a.G_TIMEENTRY, a.G_gLEVEL, a.G_DTCOMPLETE, a.G_SCHOOLID from table1 a left outer join sts2003.dbo.student_gs b on b.bio_recid=a.bio_recid and b.c_crsid=a.c_crsid and b.g_year=a.g_year where a.fid like @f and a.g_year=@sy and b.gcumn is null and (a.gcumn=@gc + '-N' or a.gcumn=@gc + '-COM' or a.gcumn=@gc + '-CON') union select a.C_CRSID, a.BIO_RECID, a.G_YEAR, @gc + '-L', G_g=case when isnumeric(a.G_gENTRY)='1' then (select GR_g from tblgScale where GR_SCALETO >= a.G_gENTRY AND GR_SCALEFR <= a.G_gENTRY) else a.G_gENTRY end, a.G_DATEENTRY, a.G_TIMEENTRY, a.G_gLEVEL, a.G_DTCOMPLETE, a.G_SCHOOLID from table1 a left outer join sts2003.dbo.student_gs b on b.bio_recid=a.bio_recid and b.c_crsid=a.c_crsid and b.g_year=a.g_year where a.fid like @f and a.g_year=@sy and a.gcumn=@gc and b.gcumn is null order by a.bio_recid select @error_var=@@error, @rowcount_var=@@rowcount if @error_var <> 0 begin rollback tran select '1' as Status, 'Error' as Msg return end set @count=@count+@rowcount_var commit tran select '0' as Status,'Successfully exported' as Msg, @count as Export_CountSet Nocount OffGO |
 |
|