Dudas sobre los sp y como llamarlos del .net

Hola a todos; quisiera que me aclaren como es esto de los sp:
Estuve haciendo mi store procedure de la tabla alumno:
create tabla alumno(
idalum int indentity (1,1) primary key;
apellidos varchar (40) not null,
nombre varchar (30) not null,
fecha_ingreso datetime,
tipo_alumno char (2)) <<esto es un Fk>>
go
create procedure actualizar_alumnos(
@ape varchar (40),
@nom varchar (30),
@fecha datetime,
@tipo char (2),
@id identity output
select nombre from alumno
where (upper(apellidos)=upper(@ape) and (upper(nombre)=upper(@nom)
          and (upper(idalum)=upper(@id)
begin
update alumnos set apellidos=@ape, nombre=@nom, fecha_ingreso=@fecha, tipo_alumno=@tipo, idalum=@id 
where idalum=@id 
Ahora bien estuve realizando algunas practicas con esto pero también tengo la tabla tipo de cliente que esta relacionada con mi tabla alumno.
Haber si es que me aclaran como trabaja los sp con 2 tablas relacionada y como llevarlo al .net, espero su respuesta y de antemano gracias

1 respuesta

Respuesta
1
Primero me gustaría hacerte unas observaciones en tu Sp:
1.- Tienes @id declarado como identity... lo tienes que tener declarado del mismo tipo de dato que es tu columna IdAlum en esta caso es int. Y luego lo tienes como si fuera un parámetro de salida "output" pero no estas mandando ningún valor de regreso.. esto se utiliza cuando presisamnte quieres obtener algún valor resultado de la ejecución de tu procedimiento almacenado.
2.- Tienes un Select donde obtienes el nombre del alumno pero jamas lo utilizas. Ademas usas el upper, sql server por default no es case sensitive osea no diferencia entre mayúsculas y minúsculas (claro al menos que al instalarlo lo hayas configurado así o posteriormente hayas cambiado esta configuraicon).
Yo te sugiero algo así:
CREATE PROCEDURE actualizar_alumnos
@ape varchar (40),
@nom varchar (30),
@fecha datetime,
@tipo char (2),
@id int
AS
Begin
update alumnos set apellidos=@ape, nombre=@nom, fecha_ingreso=@fecha, tipo_alumno=@tipo where idalum=@id
END
GO
Con lo de tu tabla relacionada con el Fk no podrás borrar registros o actualizar el campo Fk si existe algún dato que lo vincule con la otra tabla, si deseas hacer esto primero tendrás que borrar y/o actualizar los registros que lo vinculen en la otra tabla.
Te paso este link donde te explican paso a paso con un ejemplo como crear y llamar un Sp espero te sea de utilidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas