SQL Server - Modificar tipo de datos en sql server

 
Vista:
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Gerardo (3 intervenciones) el 05/04/2020 23:24:44
Tengo la siguiente tabla cargada con datos.

1
2
3
4
5
6
CREATE TABLE dbo.pagos (
      npago    BIGINT PRIMARY KEY NOT NULL,
      fecha     DATE DEFAULT ('2010-01-01'),
      concepto INT NOT NULL,
      ndocumen BIGINT  NOT NULL DEFAULT 0,
      detalle  varchar(50) NOT NULL DEFAULT '');

ahora quiero cambiar el tipo de datos del la columna ndocumen

1
ALTER TABLE pagos ALTER COLUMN ndocumen VARCHAR(15) NOT NULL;

o

1
ALTER TABLE pagos ALTER COLUMN ndocumen VARCHAR(15) NOT NULL SET DEFAULT '';

pero me sale el siguiente error y no realizo el cambio.

Msg 5074, Level 16, State 1, Line 8
El objeto 'DF__pagos__ndocumen__1D4655FB' de tipo objeto es dependiente de columna 'Ndocumen'.
Msg 4922, Level 16, State 9, Line 8
Error de ALTER TABLE ALTER COLUMN Ndocumen debido a que uno o más objetos tienen acceso a columna.
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
Imágen de perfil de Isaias
Val: 2.523
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Isaias (4204 intervenciones) el 07/04/2020 01:34:56
Existe una RELACION entre de la columna que quieres modificar con la columna "Ndocumen", es por eso que no puede realizar dicha modificacion.
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
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Gerardo (3 intervenciones) el 07/04/2020 16:58:13
No existe ninguna relación. Puesto que para hacer el script cree esta tabla al azar para poder hacer el ejercicio. Y así realizarla en mi base de datos. Es de anotar que en este foro ya han debatido el mismo problema. pero nadies presenta la solución definitiva y correcta. En Mysql no tengo ningún problema. Pero en sql server no he podido.
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 354
Bronce
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Wilfredo Patricio Castillo (189 intervenciones) el 09/04/2020 07:18:39
Elimina la restricción que tiene la columna ndocument, que es el que te genera el valor default, y eso está en las restricciones y se llama 'DF__pagos__ndocumen__1D4655FB' , solo dale click derecho a eliminar y listo, cambias el tipo y luego procedes a realizar el alter del campo y le dices que haga un default y lo volverá a generar y con eso todos felices y contentos.

Saludos cordiales,
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
sin imagen de perfil
Val: 8
Ha disminuido 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Gerardo (3 intervenciones) el 11/04/2020 15:57:06
como va a tener restricción la tabla si la creamos para hacer el ejercicio. De todas manera la revise y no tiene ninguna restricción. Ahora por el SSMS no hay problema para cambiar el tipo de datos a la tabla. El problema es hacerlo por el TRANSACT SQL. puesto que necesito hacerlo en una base de datos de mas de 60 tablas. y mas de una bd.
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
Imágen de perfil de Wilfredo Patricio Castillo
Val: 354
Bronce
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Modificar tipo de datos en sql server

Publicado por Wilfredo Patricio Castillo (189 intervenciones) el 11/04/2020 20:32:37
Cómo va a tener restricción?, y de donde crees que sacó ese mensaje SQL Server lo del 'DF__pagos__ndocumen__1D4655FB'?.

Porque se le ocurrió?, simplemente te está diciendo que existe esa restricción y eso se genera cuando al crear una tabla dices que lleve un valor por default, es una pequeña función que se encarga de meter el 0 en ese caso, crees que porque le dices que tenga un valor Default, ya sabe como hacer?, sabe como hacerlo creando esa función y esa es la que te da el problema.
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