columna UNIQUE que se autoincrementa

18/04/2008 - 10:25 por -=joselitux=- | Informe spam
Hola


Necesito que una columna que he definido como UNIQUE, reciba como valor
por defecto (Valor o enlace predeterminado) el ultimo valor insertado(+1)

No puedo definirla como PRIMARY KEY con autoincremento porque la tabla
ya tiene esa columna.

¿cómo podría definirlo en el Server?


Gracias

Preguntas similare

Leer las respuestas

#1 Juan Diego Bueno
18/04/2008 - 10:28 | Informe spam
Hola José:

-=joselitux=- ha escrito :
Hola


Necesito que una columna que he definido como UNIQUE, reciba como valor por
defecto (Valor o enlace predeterminado) el ultimo valor insertado(+1)

No puedo definirla como PRIMARY KEY con autoincremento porque la tabla ya
tiene esa columna.




Puedes crear una función de usuario que te cree dicho valor o recurrir
a una de las funciones de SQL SERVER que obtienen el próximo valor en
un autonumérico (revisa IDENT_CURRENT en los libros en pantalla). Ambas
las puedes poner como default en tu columna.

Saludos


http://www.moondance.es
Respuesta Responder a este mensaje
#2 -=joselitux=-
18/04/2008 - 10:53 | Informe spam
Lo estoy intentando con una restricción CHECK en la columna que diga
algo así como:

COLUMNA>MAX(COLUMNA)+1

Pero no me deja.


-=joselitux=- escribió:
Hola


Necesito que una columna que he definido como UNIQUE, reciba como valor
por defecto (Valor o enlace predeterminado) el ultimo valor insertado(+1)

No puedo definirla como PRIMARY KEY con autoincremento porque la tabla
ya tiene esa columna.

¿cómo podría definirlo en el Server?


Gracias
Respuesta Responder a este mensaje
#3 Juan Diego Bueno
18/04/2008 - 11:21 | Informe spam
Hola José:
-=joselitux=- planteado la idea :
Lo estoy intentando con una restricción CHECK en la columna que diga algo así
como:

COLUMNA>MAX(COLUMNA)+1

Pero no me deja.



Normal, defines un check en vez de un default, y por otra parte
pretendes que el valor de la columna se compare consigo mismo. Ten en
cuenta que lo que no vas a conseguir de forma implícita es que una
columna en un registro se compare los valores de todos los demás
registros. Si quieres algo así, recurre a funciones de usuario.

Pero como te decía, eso iría en un default, no en un check.

Saludos

http://www.moondance.es
Respuesta Responder a este mensaje
#4 Maxi Accotto
19/04/2008 - 18:05 | Informe spam
Hola, hay algo que no me gusta? porque quiere armar su propio numerador asi?

Mire este link en mi blog donde quizas le pueda dar una ayuda de como
numerar comprobantes por ejemplo

http://msmvps.com/blogs/maxiaccotto...tento.aspx




Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"-=joselitux=-" escribió en el mensaje de
noticias:#x$
Hola


Necesito que una columna que he definido como UNIQUE, reciba como valor
por defecto (Valor o enlace predeterminado) el ultimo valor insertado(+1)

No puedo definirla como PRIMARY KEY con autoincremento porque la tabla ya
tiene esa columna.

¿cómo podría definirlo en el Server?


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