Mostrando entradas con la etiqueta cambiar nombre. Mostrar todas las entradas
Mostrando entradas con la etiqueta cambiar nombre. Mostrar todas las entradas

jueves, 7 de noviembre de 2013

Modificar campos de una tabla ya creada en SQL Server

Crear una tabla en SQL SERVER es sencillo, ya se explicó en Crear una tabla en SQL Server Si la tabla ya está creada y sólo queremos modificar la longitud de un campo, su nombre o eliminarlo tenemos que hacerlo mediante scripts de texto, pero es muy sencillo basta escribir estas líneas en el analizador de consultas y pulsar el botón ejecutar.

Para modificar la longitud del campo: (le ponemos 50 Por ejemplo)

ALTER TABLE PROPIETARIO.Nombre_Tabla ALTER COLUMN Nombre_Columna char(50) NULL

Al final se especifica si el campo permite nulos NULL o no NOT NULL. 

Si el campo a modificar es clave (Primary Key) o tiene una referencia (Foreing Key) no dejará hacerlo En este caso hacemos para la Primary Key.

ALTER TABLE PROPIETARIO.Nombre_Tabla DROP CONSTRAINT PK_NombreClave

ALTER TABLE PROPIETARIO.Nombre_Tabla ALTER COLUMN Nombre_Campo char(50) NOT NULL

ALTER TABLE PROPIETARIO.Nombre_Tabla ADD CONSTRAINT [PK_NombreClave] PRIMARY KEY CLUSTERED ([Nombre_Campo] ASC) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] 


Modificar campos de una tabla ya creada en SQL Server




No deja por que hay una tabla dependiente


Si hay otra tabla que depende de este campo al ejecutar estas líneas, no nos dejará hacerlo pues saldrá un mensaje del tipo:

Mens. 3725, Nivel 16, Estado 0, Línea 1
The constraint 'PK_NombreClave' is being referenced by table 'tbTablaDependiente', foreign key constraint 'fk_Nombre_Tabla'.
Mens. 3727, Nivel 16, Estado 0, Línea 1
Could not drop constraint. See previous errors.

El la ventana del explorador de objetos, al deplegar sus campos, sobre el apartado Claves, nos aparecerá  'fk_Nombre_Tabla' Que es la que nos impide modificar la tabla original, primero habrá que modificar este campo con la misma instrucción inicial pero para la tabla dependiente. 

modificar campos de una tabla SQL server