Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Verificar datos antes de ingresarlos a la BD

Estas en el tema de Verificar datos antes de ingresarlos a la BD en el foro de SQL Server en Foros del Web. Hola amigos, estoy haciendo un programa en .NET, pero tengo una duda en cuanto a la verificación de los datos antes de ingresar. Mi pregunta ...
  #1 (permalink)  
Antiguo 26/06/2014, 21:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 14 años, 3 meses
Puntos: 9
Verificar datos antes de ingresarlos a la BD

Hola amigos, estoy haciendo un programa en .NET, pero tengo una duda en cuanto a la verificación de los datos antes de ingresar.

Mi pregunta es la siguiente, esta bien que en mi código .NET llame primero al procedimiento almacenado "BuscarPersonaPorDni" y dependiendo si me devuelve verdadero yo envío un mensaje de que ya existe ese dato o si me devuelve falso yo recién ejecute al procedimiento "InsertarPersona".

O como se puede optimizar estos procedimiento almacenados..??

Código PHP:
Ver original
  1. create procedure InsertarPersona
  2. @Nombres varchar(50),
  3. @Apellidos varchar(50),
  4. @Dni int,
  5. @FechaNac datetime,
  6. @Direccion varchar(100),
  7. @Telefono int,
  8. @Email varchar(100),
  9. @Estado varchar(30)
  10. as
  11. begin
  12.     insert into tztPersona values (@Nombres, @Apellidos, @Dni, @FechaNac, @Direccion, @Telefono, @Email, @Estado)
  13. go
  14.  
  15.  
  16.  
  17. create procedure BuscarPersonaPorDni
  18. @Dni int
  19. as
  20. begin
  21.     select *
  22.     from tztPersona
  23.     where Dni=@Dni
  24. go

gracias.
  #2 (permalink)  
Antiguo 27/06/2014, 07:13
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Verificar datos antes de ingresarlos a la BD

a que te refieres con optimizar????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 27/06/2014, 09:47
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: Verificar datos antes de ingresarlos a la BD

a mejorar el procedimiento InsertarPersona, para no estar haciendo dos consultas separadas. Tu que opinas, será que esta bien mis consultas..??
  #4 (permalink)  
Antiguo 27/06/2014, 10:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Verificar datos antes de ingresarlos a la BD

Busco - ¿encontró?, mensaje de error, ¿no?, inserta registro

Creo que asi debería ser la logica
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 27/06/2014, 11:32
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Verificar datos antes de ingresarlos a la BD

Cita:
Iniciado por iislas Ver Mensaje
Busco - ¿encontró?, mensaje de error, ¿no?, inserta registro

Creo que asi debería ser la logica
Muy cierto amigo, para @uagrm aqui esta el query en una sola consulta:

Código SQL:
Ver original
  1. CREATE PROCEDURE InsertarPersona
  2. @Nombres VARCHAR(50),
  3. @Apellidos VARCHAR(50),
  4. @Dni INT,
  5. @FechaNac datetime,
  6. @Direccion VARCHAR(100),
  7. @Telefono INT,
  8. @Email VARCHAR(100),
  9. @Estado VARCHAR(30)
  10. AS
  11. BEGIN
  12. IF ( SELECT COUNT(*) FROM tztPersona WHERE Dni=@Dni)=0
  13. BEGIN
  14.     INSERT INTO tztPersona VALUES (@Nombres, @Apellidos, @Dni, @FechaNac, @Direccion, @Telefono, @Email, @Estado)
  15. END
  16. END
  17. GO

Asi no ocupas un segundo procedure
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: bd, select, siguiente, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:05.