Datetime

17/12/2004 - 09:18 por Elena | Informe spam
Buenos días,

tengo una tabla Importe con su identificador como clave primaria, esta tabla
tiene una tabla historico H_Importe cuya clave primaria es el id y la
fecha(datetime). Cuando inserta o actualiza Importe se crea un nuevo
registro en H_Importe con la fecha del sistema(getdate).
El problema es que pueden realizar dos actualizaciones seguidas de manera
que se estaría insertando el mismo id y la misma fecha en H_Importe y daría
error.
Os ha ocurrido alguna vez, hay alguna posibilidad para que entre las
inserciones deje los milisegundos necesarios?

Gracias
Elena

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
17/12/2004 - 09:40 | Informe spam
Hola:

Creo que tienes un problema de diseño, si realmente pueden entrar dos filas
en la misma fecha y hora, deberías permitir que entrasen. Una alternativa
sería que añadieses un campo identity y que esa fuese tu clave primaria.

Pd. Supongo que esto levantará alguna polémica por el uso de identities,
pero bueno, la discutiremos y veremos otras alternativas :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Elena" escribió en el mensaje
news:%
Buenos días,

tengo una tabla Importe con su identificador como clave primaria, esta


tabla
tiene una tabla historico H_Importe cuya clave primaria es el id y la
fecha(datetime). Cuando inserta o actualiza Importe se crea un nuevo
registro en H_Importe con la fecha del sistema(getdate).
El problema es que pueden realizar dos actualizaciones seguidas de manera
que se estaría insertando el mismo id y la misma fecha en H_Importe y


daría
error.
Os ha ocurrido alguna vez, hay alguna posibilidad para que entre las
inserciones deje los milisegundos necesarios?

Gracias
Elena


Respuesta Responder a este mensaje
#2 Ricardo Passians
17/12/2004 - 10:59 | Informe spam
Habría que ver lo que es tu ID, pero si no es un identity, sino por ej. un
codigo de transaccion o algo similar, pienso que es una mala elección para
una clave primaria. La clave primaria debe ser por definición un valor que
identifique únicamente cada registro en una tabla. Para lograr esto
normalmente en toda o en parte de la clave primaria debe existir un
consecutivo ya sea generado manualmente dentro de una transacción o (sino es
importante la secuencia estricta) un campo identity.
Lo de que no convenga usarse un campo identity es sólo relativo a cuando la
secuencia estricta es particularmente importante, como por ejemplo, en la
numeración de documentos como cheques, facturas y similares. Si esta
secuencia es sólo para una asignación única e interna pues sí te conviente
usar un campo identity. Yo uso identities frecuentemente para por ejemplo
tablas detail para identificar de manera unica cada registro (o elemento del
conjunto) y para eso no me da problema alguno.


Ricardo Passians





"Elena" wrote in message
news:%
Buenos días,

tengo una tabla Importe con su identificador como clave primaria, esta


tabla
tiene una tabla historico H_Importe cuya clave primaria es el id y la
fecha(datetime). Cuando inserta o actualiza Importe se crea un nuevo
registro en H_Importe con la fecha del sistema(getdate).
El problema es que pueden realizar dos actualizaciones seguidas de manera
que se estaría insertando el mismo id y la misma fecha en H_Importe y


daría
error.
Os ha ocurrido alguna vez, hay alguna posibilidad para que entre las
inserciones deje los milisegundos necesarios?

Gracias
Elena


Respuesta Responder a este mensaje
#3 Javier Loria
17/12/2004 - 19:16 | Informe spam
Hola:
Umm. No puedo aguantarme.
La ventaja de los identities es que "resuelven" todos los problemas de
diseno, ya que no hay que investigar la llaves naturales primarias. Entonces
se convierten en aspirinas que nos "quitan el dolor de cabeza" de
investigar. Claro que unos meses despues resulta que teniamos un tumor y las
aspirinaa no cura, solo alivian. Para entonces la Tabla esta llena de
basura, porque no hay chequeo de integridad.
Una alternativa seria preguntar que estamos modelando?
Saludos


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Salvador Ramos" wrote in message
news:
Hola:

Creo que tienes un problema de diseño, si realmente pueden entrar dos


filas
en la misma fecha y hora, deberías permitir que entrasen. Una alternativa
sería que añadieses un campo identity y que esa fuese tu clave primaria.

Pd. Supongo que esto levantará alguna polémica por el uso de identities,
pero bueno, la discutiremos y veremos otras alternativas :-)

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Elena" escribió en el mensaje
news:%
> Buenos días,
>
> tengo una tabla Importe con su identificador como clave primaria, esta
tabla
> tiene una tabla historico H_Importe cuya clave primaria es el id y la
> fecha(datetime). Cuando inserta o actualiza Importe se crea un nuevo
> registro en H_Importe con la fecha del sistema(getdate).
> El problema es que pueden realizar dos actualizaciones seguidas de


manera
> que se estaría insertando el mismo id y la misma fecha en H_Importe y
daría
> error.
> Os ha ocurrido alguna vez, hay alguna posibilidad para que entre las
> inserciones deje los milisegundos necesarios?
>
> Gracias
> Elena
>
>


Respuesta Responder a este mensaje
#4 Salvador Ramos
17/12/2004 - 19:30 | Informe spam
jejeje, sabía que habría opiniones diferentes ;-)

La verdad es que con la información que nos indica Elena poco podemos
afinar, y simplemente he dado una solución rápida al problema, sin conocerlo
en profundidad, y sin saber si es la más apropiada.

En cuanto a lo que indicas sobre los dolores de cabeza, a mi no me ha dado
ninguno, todo depende de dónde y cómo se usen. Creo que lo importante es
conocerlos a fondo, y luego en función de muchos factores, incluidas
nuestras preferencias, aplicarlos o no.

A ver si nos aporta más datos, y ya debatimos el caso concreto.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Javier Loria" escribió en el mensaje
news:
Hola:
Umm. No puedo aguantarme.
La ventaja de los identities es que "resuelven" todos los problemas de
diseno, ya que no hay que investigar la llaves naturales primarias.


Entonces
se convierten en aspirinas que nos "quitan el dolor de cabeza" de
investigar. Claro que unos meses despues resulta que teniamos un tumor y


las
aspirinaa no cura, solo alivian. Para entonces la Tabla esta llena de
basura, porque no hay chequeo de integridad.
Una alternativa seria preguntar que estamos modelando?
Saludos


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Salvador Ramos" wrote in message
news:
> Hola:
>
> Creo que tienes un problema de diseño, si realmente pueden entrar dos
filas
> en la misma fecha y hora, deberías permitir que entrasen. Una


alternativa
> sería que añadieses un campo identity y que esa fuese tu clave primaria.
>
> Pd. Supongo que esto levantará alguna polémica por el uso de identities,
> pero bueno, la discutiremos y veremos otras alternativas :-)
>
> Un saludo
> Salvador Ramos
> Murcia - España
> [Microsoft MVP SQL Server]
> www.helpdna.net
> ¿Te interesa participar en las reuniones
> del grupo de Usuarios de SQL-Server y .NET
> Se harán en levante de España, (Alicante o Murcia)?
>
> "Elena" escribió en el mensaje
> news:%
> > Buenos días,
> >
> > tengo una tabla Importe con su identificador como clave primaria, esta
> tabla
> > tiene una tabla historico H_Importe cuya clave primaria es el id y la
> > fecha(datetime). Cuando inserta o actualiza Importe se crea un nuevo
> > registro en H_Importe con la fecha del sistema(getdate).
> > El problema es que pueden realizar dos actualizaciones seguidas de
manera
> > que se estaría insertando el mismo id y la misma fecha en H_Importe y
> daría
> > error.
> > Os ha ocurrido alguna vez, hay alguna posibilidad para que entre las
> > inserciones deje los milisegundos necesarios?
> >
> > Gracias
> > Elena
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida