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

[SOLUCIONADO] Restricción al Ingresar Registros en una tabla

Estas en el tema de Restricción al Ingresar Registros en una tabla en el foro de SQL Server en Foros del Web. Buen día. Quiero crear una tabla de nombre Servicios_realizados con los siguientes campos: Create table Servicios_Realizados ( TipoServicio char(1), Nro char(4) references Avion (NumMatricula), FechaRealizada ...
  #1 (permalink)  
Antiguo 15/02/2013, 10:43
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta Restricción al Ingresar Registros en una tabla

Buen día.

Quiero crear una tabla de nombre Servicios_realizados con los siguientes campos:

Create table Servicios_Realizados (
TipoServicio char(1),
Nro char(4) references Avion (NumMatricula),
FechaRealizada datetime default getdate(),
NumHorasInvertidas smalldatetime,
CodMecanico int references Mecanicos (Seguro))


Pero necesito la siguiente restricción "No puede haber dos servicios realizados al mismo avión en la misma fecha con el mismo tipo de trabajo".

Intente poniendo Unique pero es una restricción total de la tabla.

Alguien que pueda ayudarme con esta pequeña dificultad.
Gracias.
  #2 (permalink)  
Antiguo 15/02/2013, 10:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Restricción al Ingresar Registros en una tabla

a pues para eso puedes usar constraints, o un trigger de validacion :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/02/2013, 10:56
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Restricción al Ingresar Registros en una tabla

Puedes darme un ejemplo por favor que soy nuevo en esto.

Gracias.
  #4 (permalink)  
Antiguo 15/02/2013, 11:08
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Restricción al Ingresar Registros en una tabla

si pones en google sql server constraints o

sql server triggers aparecen muchos pero muchos ejemplos
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 15/02/2013, 11:41
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Restricción al Ingresar Registros en una tabla

Jeje

Creeme que ya intente buscando casos parecidos por google...

Gracias a eso encontre este foro.

Lo unico que quiero es saber como utilizar el Constraint o Triggers en este caso. Se que tienes consultas mas complejas. Pero Yo soy un novato en esto.

Gracias.
  #6 (permalink)  
Antiguo 15/02/2013, 11:46
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Restricción al Ingresar Registros en una tabla

qq, estas usando sql server o myslq?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 15/02/2013, 12:35
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Restricción al Ingresar Registros en una tabla

Sql

Ahora intente creando una tabla tipo

create table Tipo_Servicio (
Codigo int identity (10,1) primary key,
Descripcion varchar (20) )



create table Servicios_Realizados (
Tipo int references Tipo_Servicio (Codigo),
Nro char(4) references Avion (NumMatricula),
FechaRealizada datetime default getdate(),
NumHorasInvertidas smalldatetime,
CodMecanico int references Mecanicos (Seguro) )

Ojala tengas tiempo para poder ayudarme

Gracias.
  #8 (permalink)  
Antiguo 15/02/2013, 12:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Restricción al Ingresar Registros en una tabla

y porque usas reference? esa es una instruccion de mysql....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 15/02/2013, 12:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Restricción al Ingresar Registros en una tabla

digamos con un trigger:


Código SQL:
Ver original
  1. CREATE TRIGGER mytrigger ON TABLE after INSERT,UPDATE
  2. AS
  3. DECLARE @tipo INT
  4. DECLARE @fecha datetime
  5. DECLARE @nro INT
  6. DECLARE @contador INT
  7.  
  8. SELECT @tipo=tipo  FROM inserted
  9. SELECT @fecha=fecha FROM inserted
  10. SELECT @nro=nro FROM inserted
  11.  
  12. SELECT @contador=COUNT(*) FROM tabla WHERE tipo=@tipo AND fecha=@fecha AND nro=@nro
  13.  
  14. IF @contador>0
  15. BEGIN
  16. print 'Registro duplicado'
  17. ROLLBACK TRANSACTION
  18. END


algo asi :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 15/02/2013, 12:51
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 18
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Restricción al Ingresar Registros en una tabla

En las clases que estoy llevando lo estamos usando en sql server 2008 para el tema de integridad.

Etiquetas: Ninguno
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 16:22.