
Carlos Felipe González Calero
PreguntaHe cambiado el valor del DEFAULT de la siguiente forma pero siempre me devuelve un 0.
He probado a borrar el Constraint y crearlo de nuevo y nada… ¿Alguna sugerencia para que por defecto nos devuelva un resultado diferente a 0?
ALTER TABLE UsuarioSource ADD CONSTRAINT puntos_empezar DEFAULT 2 FOR Puntos

José Javier Sanahuja
Excelente pregunta y me apunto a ella. Sin embargo he jugado un poco con esta pregunta que haz hecho y he descubierto varias cosas.
apunte 1.
ALTER TABLE UsuarioSource ADD CONSTRAINT [DF_UsuarioSource_Puntos] DEFAULT ((0)) FOR [Puntos]
El doble paréntesis del 0 dañan el constraint. Luego puedo mostrarlo. la forma correcta sería con 1 solo paréntesis o sin paréntesis.
Apunte 2.
insert into UsuarioSource (Codigo, Nombre) values(21,'JJ')
Con un INSERT de este tipo, donde especificamos las columnas y dejamos por fuera la la columna con la restricción en cuestión, ahí sí, la restricción cumple su cometido y nos da por defecto el valor 2.
PD: Para demostrar que el doble paréntesis daña el constraint basta correr este último insert y ver que el valor que recibe puntos es NULL.
La pregunta original de por qué ante un insert del tipo
insert into UsuarioSource values(21,'JJ', '')
Por qué nos devuelve 0? yo mismo sigo intrigado y esperando una respuesta.
Saludos