ayuda con stored procedure!!!

lezama
05 de Marzo del 2004
hola a todos

alguien me podria decir donde aprender acerca de stored procedure, de como crear, sintaxis y todo ellos y si se puede ejemplos?

me super urge gracias de antemano

rolo
05 de Marzo del 2004
En la web , no se donde , pero te envio un codigo para que te vayes familiarizando .. suerte

if exists (select * from sysobjects
where name = 'sp_servidor'
and xtype = 'P')
drop proc sp_servidor

go


CREATE PROC sp_servidor
@i_servidor int = 0,
@i_nombre_srv varchar(10),
@i_operacion char(1),
@s_user varchar(12) = null,
@i_estado char(1) = null

as
declare @w_ant_nombre varchar(25),
@w_ant_estado char(1),
@w_ant_fecha varchar(10),
@w_fecha_ant varchar(10),
@w_fecha_act varchar(10),
@w_ant_descr varchar(100),
@w_servidor char(3)



if @i_operacion = 'I' -- Ingresar Servidor
begin
if not exists (select * from sv_servidor
where srv_nombre = @i_nombre_srv)
begin
begin tran
insert into sv_servidor (srv_nombre,srv_fecha_crea,srv_fecha_ult_mod,srv_estado)
values (RTRIM(@i_nombre_srv),getdate(),getdate(),'A')

if @@error <> 0
begin
exec sp_control_error
@i_operacion = 'I',
@s_user = @s_user,
@i_sp_nombre = 'sp_servidor',
@i_num_error = '001',
@i_descripcion = 'No se creo el servidor'
rollback tran
return 1
end

select @w_ant_descr = RTRIM(@i_nombre_srv)

select @w_servidor = convert(char(3),srv_servidor)
from sv_servidor
where srv_nombre = @i_nombre_srv


insert into ts_servicio (ts_tipo,ts_fecha,ts_usuario,ts_descripcion)
values ('I',getdate(),@s_user,'INGRESO DE NUEVO SERVIDOR-'[email protected]_servidor+'-'[email protected]_ant_descr)

if @@error <> 0
begin
exec sp_control_error
@i_operacion = 'I',
@s_user = @s_user,
@i_sp_nombre = 'sp_servidor',
@i_num_error = '002',
@i_descripcion = 'No se ingreso registro en la ts_servicio'
rollback tran
return 1
end

commit tran
select @w_servidor

end -- fin de not exists (select * from sv_servidor
else
begin
select 0
end


end -- Fin Ingresar Servidor

if @i_operacion = 'C' -- Consulta Servidor
begin
select 'Num. Servidor' = srv_servidor,
'Nombre' = srv_nombre,
'Fecha Creacion'= convert(char(10),srv_fecha_crea,101),
'Fecha Ult. Mod'= convert(char(10),srv_fecha_ult_mod,101),
'Estado' = srv_estado
from sv_servidor
where srv_servidor > 0
and srv_estado <> 'E'
order by srv_servidor

if @@rowcount = 0
print 'No hay Registros que Verficar'

end

if @i_operacion = 'Q' -- Consulta Servidor
begin
if exists (select * from sv_servidor
where srv_servidor = @i_servidor
and srv_estado <> 'E')
begin
select 'Num. Servidor' = srv_servidor,
'Nombre' = srv_nombre,
'Fecha Creacion'= convert(char(10),srv_fecha_crea,101),
'Fecha Ult. Mod'= convert(char(10),srv_fecha_ult_mod,101),
'Estado' = srv_estado
from sv_servidor
where srv_servidor = @i_servidor
and srv_estado <> 'E'
order by srv_servidor
end
else
print 'No hay Registros que Verficar'

end

if @i_operacion = 'A' -- Consulta Servidor
begin
if exists (select * from sv_servidor
where srv_servidor = @i_servidor
)
begin

select @w_ant_nombre = srv_nombre,
@w_ant_estado = srv_estado,
@w_fecha_ant = convert(char(10),srv_fecha_ult_mod,101),
@w_fecha_act = converT(char(10),getdate(),101)
from sv_servidor
where srv_servidor = @i_servidor

begin tran
update sv_servidor
set srv_nombre = @i_nombre_srv,
srv_fecha_ult_mod = getdate(),
srv_estado = @i_estado
from sv_servidor
where srv_servidor = @i_servidor

if @@rowcount <> 1
begin
exec sp_control_error
@i_operacion = 'I',
@s_user = @s_user,
@i_sp_nombre = 'sp_servidor',
@i_num_error = '003',
@i_descripcion = 'Error en la Actualizacion'

rollback tran
return 1
end
select @w_ant_descr = 'ant:' + RTRIM(@w_ant_nombre) + ','
+ RTRIM(@w_fecha_ant) + ',' + RTRIM(@w_ant_estado) + ','
+ 'act:' + @i_nombre_srv + ',' + @w_fecha_act + ',' + @i_estado

insert into ts_servicio (ts_tipo,ts_fecha,ts_usuario,ts_descripcion)
values ('A',getdate(),@s_user,@w_ant_descr)

if @@error <> 0
begin
exec sp_control_error
@i_operacion = 'I',
@s_user = @s_user,
@i_sp_nombre = 'sp_servidor',
@i_num_error = '002',
@i_descripcion = 'No se ingreso registro en la ts_servicio'
rollback tran
return 1
end

commit tran
end
else
print 'No hay Registros que actualizar'
end

return 0
go

9
05 de Marzo del 2004
ROLO CONOCES A LOS JORDAN