SQL Server - procedure

 
Vista:

procedure

Publicado por renegado (41 intervenciones) el 23/11/2004 01:46:02
saludos y un fuerte abrazo par todos

se que me paso de conchudo pero quiero prender

alguien me puede facilitar algunos ejemplos de procedimeitnso alamcenados complejos(que tengan bastaqnte codigo con ciclos, actualizacioenes etc) y algunas funciones definidas por el usuario

ya que analizando el codigo puedeo aprender un poquito mas

mi correo

recasta12@hotmail. com

pd
perdonemen el atrevimiento

at

renegado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ejemplo Super Sencillo!!!!!!!

Publicado por EnriqueK (47 intervenciones) el 24/11/2004 00:33:05
Bueno man, es cierto quizas viendo aprendas, pero mejor pregunta ;) aqui estamos para responderte. bueno para ejemplo de todos pegare un store, le he cambiado nombre de algunas tablas por q bueno ... entienden verdad, no le vayan con el chisme a nadie ok...

Espero q no lo vea nadie del trabajo por q si no ...

Ojala aprendas algo ;)

Se los mando en dos partes esta porkeria no deja y ni siquiera manda un aviso... ta q grrr

Una va a continuancion de otra.... no me pregunten cual va primero Ok.

CREATE PROC dbo.PC_SEL_RiesgosXCodigoUNiversal
@in_secc_tabl int = 1,
@in_tam_pag int = 30,
@in_secc_CodigoUNiversal int = 0,
@ch_desc_cort varchar(3000) = ''
AS
Set Nocount On
Declare @sql nvarchar(4000), @i int, @ch_campos varchar(1000), @j int

Create Table #tmpRiesgos
(id_tabla int identity(1,1),
in_secc_rieg int)

Insert Into #tmpRiesgos
Select in_secc_conc From TablaDefiniciones where in_Secc_tabl=14

Create Table #tblCodigoUNiversal
(id_tabla int identity(1,1),
in_secc_CodigoUNiversal int)

Set @i=1
While Exists(Select * from #tmpRiesgos where id_tabla=@i)
Begin
Select @sql='Alter Table #tblCodigoUNiversal add i'+convert(varchar(16),in_secc_rieg)+' int default 0 ' From #tmpRiesgos where id_tabla=@i
EXEC sp_executesql @sql
Set @i=@i+1
End
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejemplo Super Sencillo!!!!!!!

Publicado por EnriqueK (47 intervenciones) el 24/11/2004 00:34:21
If @in_secc_CodigoUNiversal is null Set @in_secc_CodigoUNiversal = 0
If @ch_desc_cort is null Set @ch_desc_cort = ''

If @in_secc_CodigoUNiversal <> 0
Begin
--Inserto todos los CodigoUNiversal que existen
Insert into #tblCodigoUNiversal (in_secc_CodigoUNiversal)
Select in_secc_conc from TablaDefiniciones
where in_secc_tabl=9 and in_valo_clav = @in_secc_CodigoUNiversal
End
Else
Begin
If @ch_desc_cort <> ''
Begin
Insert into #tblCodigoUNiversal (in_secc_CodigoUNiversal)
Select in_secc_conc from TablaDefiniciones
where in_secc_tabl = 9 and ch_desc_cort Like '%' + @ch_desc_cort + '%'
End
Else
Begin
Insert into #tblCodigoUNiversal (in_secc_CodigoUNiversal)
Select in_secc_conc from TablaDefiniciones where in_secc_tabl=9
End
End
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedure

Publicado por EnriqueK (47 intervenciones) el 24/11/2004 00:35:04
/*Esta es la tercera parte por si aca */

Set @i = @in_secc_tabl
Set @j=0
--Set @i=1
While Exists(Select * from #tblCodigoUNiversal where id_tabla=@i) and ( @j < @in_tam_pag)
Begin
Select @sql='Update #tblCodigoUNiversal set '
Set @ch_campos=''

Select @ch_campos=@ch_campos+'i'+convert(varchar(16),b.in_secc_rieg)+'=1, '
From #tblCodigoUNiversal a
Inner Join RiesgoxCodigoUNiversal b On a.in_secc_CodigoUNiversal=b.in_secc_CodigoUNiversal
Where a.id_tabla=@i

If len(@ch_campos)>1
Begin
Select @sql=@sql+left(@ch_campos,len(@ch_campos)-1)+' Where id_tabla='+convert(varchar(16),@i)
EXEC sp_executesql @sql
End

Set @i=@i+1
Set @j=@j+1
End

Select b.in_valo_clav, b.ch_desc_cort, a.*
From #tblCodigoUNiversal a
Inner Join TablaDefiniciones b On a.in_secc_CodigoUNiversal=b.in_secc_conc
where id_tabla between @in_secc_tabl and (@in_secc_tabl + @in_tam_pag - 1)
order by a.in_secc_CodigoUNiversal
Set Nocount Off
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar