una restricción restricciones restriccion quitar puede primary modificar los foreign errores eliminar deshabilitar consulte constraint como columna check anteriores agregar sql-server sql

sql server - restricciones - Cómo eliminar la restricción no nula en el servidor SQL mediante consulta



no se puede quitar la restricción consulte los errores anteriores (4)

Debe eliminar las restricciones antes de eliminar la columna no nula

DECLARE @ConstraintName nvarchar(200) SELECT @ConstraintName = Name FROM SYS.DEFAULT_CONSTRAINTS WHERE PARENT_OBJECT_ID = OBJECT_ID(''<tableName>'') AND PARENT_COLUMN_ID = (SELECT column_id FROM sys.columns WHERE NAME = N''<columnToDelete>'' AND object_id = OBJECT_ID(N''<columnToDelete>'')) IF @ConstraintName IS NOT NULL EXEC(''ALTER TABLE <tableNAme> DROP CONSTRAINT '' + @ConstraintName) IF EXISTS (SELECT * FROM syscolumns WHERE id=object_id(''<TableName>'') AND name=''<columnToDelete>'') EXEC(''ALTER TABLE <tableName> DROP COLUMN <columnToDelete>'')

¡Funciona para mí!

Estoy tratando de eliminar la restricción no nula en el servidor sql 2008 sin perder datos.


Eliminar restricción not null a null

ALTER TABLE ''test'' CHANGE COLUMN ''testColumn'' ''testColumn'' datatype NULL;


Solo para la posteridad:

Estaba declarando mi nombre de columna así:

ALTER TABLE <table_name> ADD <column_name> <datatype> NOT NULL DEFAULT 0

Para eliminar con éxito el <nombre_de_columna> mediante programación, debe declarar su columna de la siguiente manera:

ALTER TABLE <table_name> ADD <column_name> <data_type> NOT NULL CONSTRAINT <default_constraint_name> DEFAULT 0

Para DROP la <column_name>:

  1. ALTER TABLE <table_name> DROP <default_constraint_name>
  2. ALTER TABLE <table_name> ALTER COLUMN <column_name> <data_type> NULL
  3. ALTER TABLE <table_name> DROP COLUMN <column_name>

ALTER TABLE YourTable ALTER COLUMN YourColumn columnType NULL