Alteración e campos

He intentado mil manera para modificar un campo de una tabla de SQL server pero no he podido, lo que quiero hacer es cambiar el valor por defeto de un campo de una tabla pero con el alter table no se como se hace. ¿Hay alguna manera de hacerlo con el alter table o hay otra?

1 respuesta

Respuesta
1
Antes tengamos en cuenta:
Por lo general se usa lo siguiente:
Para un campo numérico el valor por defecto es 0
Para un campo carácter el valor por defecto es un espacio.
Para un campo fecha el valor por defecto es '1900/01/01'
Ahora, utilizando el analizador de consultas debes ejecutar las siguientes instrucciones:
update tabla1 set campo1=0 where campo1 is null
sp_unbindefault 'tabla1.campo1'
GO
CREATE DEFAULT UW_ZeroDefault AS 0
EXEC sp_bindefault 'UW_ZeroDefault', 'tabla1.campo1'
GO
La primera línea llena el campo con valor 0 para los registros que tengan valor nulo.
La segunda desvincula el campo de cualquier valor por defecto.
La tercera crea un objeto llamado valor por defecto.
La cuarta vincula en campo con el valor por defecto.
Cuando se esta creando el campo, la instrucción sería:
CREATE TABLE tabla2 (campo1 CHAR(3) DEFAULT ' ' NOT NULL)
Si revisas con cuidado la tabla sysobjects, encontraras los objetos que estas buscando.
Agradezco mucho tu ayuda pero descubrí lo mismo que me recomendaste al momento de hacerte la pregunta, por lo que he seguido investigando en varios libros y textos para cambiar el valor por defecto con el alter table y estoy 99% seguro que de esta manera no se puede. Como ya te insinúe anteriormente solucione el problema con el create default pero como hago para desvincular el objeto que se crea de todos los campos de las demás tablas, o sea que desvinculo un default si ya se como se llama y el campo al cual esta enlazado pero no se como avergiguar que campos siguen enlazados al valor default para así poder desvincularlos.
Te hubieras ganado el excelente pero solo llegas al Bien por que esperaba una repuesta más detallada. Para ver los create default yo se que se utiliza la sysobjects pero los registros que tiene esta tiene un campo que dice parentobject o algo así que indica el id del objeto al cual esta elacionado ese valor default, pero lo único que aparece es un 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas