SQL Server - Restricion para campo fecha

 
Vista:

Restricion para campo fecha

Publicado por anonimo (53 intervenciones) el 22/05/2007 20:29:06
Buenas tardes señores del foro
Tengo una tabla en donde guardo el tipo de cambio
la columna fecha es el primary key

el asunto es el sgt
inserto un registro a la tabla con

insert into TTipo_Cambio values (getdate () ,@Valor_venta , @Valor_compra)

registro el tipode cambio de hoy ,,cierto , hasta ahi todo bien
pero si vuelvo a ejecutar la sentencia deberia existir una restriccion que la bloquee
puesto que ya registre el tipo de cambio de hoy

Espero me puedan ayudar
Saludos desde Peru
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

RE:Restricion para campo fecha

Publicado por Isaías (3308 intervenciones) el 22/05/2007 21:01:04
Ya te habia comentado:

Si tu columna fecha esta declarada como PRIMARY KEY o es INDICE UNICO, no te dejara insertar el registro, asi lo ejecutes, 10 mil veces.

Saludos.
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:Restricion para campo fecha

Publicado por Isaías (3308 intervenciones) el 22/05/2007 21:02:52
Aclaracion:

En tu columna fecha, debes guardar unicamente tu formato ANSI, por lo que debe ser un char(10)

INSERT INTO TuTabla VALUES (CONVERT(CHAR(10), GETDATE(), 112), .............)

ok??
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:Restricion para campo fecha

Publicado por anonimo (53 intervenciones) el 22/05/2007 21:55:15
Gracias

pero necesito crear una restriccion ya que este dato es actualizado por una aplicacion de pb 9.0

(la verdad mi aplicacion inserta la fecha sin el formato que incluye horas y segundos) pero igual quisiera crear una restriccion de este tipo

puesto que no basta con tener el campo fecha como llave primaria
ya que al insertar getdate () estoy insertar una fecha con un segundo diferente
y al final obtengo que tengo varios tipo de cambios registrados en el mismo dia

(con una difrencia de segundos por el getdate)
espero me puedas ayudar

Saludos
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:Restricion para campo fecha

Publicado por eljhonb (124 intervenciones) el 22/05/2007 23:16:36
Eso fue lo que te explico Isaias...
en tu sentencia sql pones
INSERT INTO TTipo_Cambio VALUES (CONVERT(CHAR(10), GETDATE(), 112), @Valor_venta , @Valor_compra)

esta instrucción: CONVERT(CHAR(10), GETDATE(), 112), es la que obliga a que en tu tabla la fecha se guarde con el formato aaaammdd sin importar desde donde se actualiza la aplicación.

Salu2.
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:Restricion para campo fecha

Publicado por anonimo (53 intervenciones) el 22/05/2007 23:53:54
Aja tienen razon , ya lo vi,
Gracias Isaias , gracias eljhonb
pero tengo una ultima consulta para terminarla

ya que anteriormente aplique getdate ()
Mi tabla quedo de la sgt manera

FTcambio VCompra VVenta
2007-05-22 21:57:18.030 3.20 3.25
2007-05-22 21:57:18.045 3.20 3.25
2007-05-22 21:57:18.048 3.20 3.25

Como puedo seleccionar todos los registros con la fecha
2007-05-22

seria algo asi

select * from TTipo_Cambio
--WHERE (CONVERT(CHAR(10), FTCambio, 112)= '22/05/2007'
ó
--WHERE CAST(FTCambio AS char(10))= '22/05/2007'


Bueno ,Espero me puedan ayudar
= Gracias por todo
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:Restricion para campo fecha

Publicado por Isaías (3308 intervenciones) el 22/05/2007 23:47:09
Con la instruccion que puse, ya no se duplica.
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:Restricion para campo fecha

Publicado por anonimo (53 intervenciones) el 22/05/2007 23:58:35
Ok Gracias por todo
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