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>:
-
ALTER TABLE <table_name> DROP <default_constraint_name>
-
ALTER TABLE <table_name> ALTER COLUMN <column_name> <data_type> NULL
-
ALTER TABLE <table_name> DROP COLUMN <column_name>
ALTER TABLE YourTable ALTER COLUMN YourColumn columnType NULL