How to remove non-zero constraint in sql server using query

I am trying to remove a non-zero constraint in SQL Server 2008 without data loss.

+95
sql sql-server
Jul 30 '10 at 9:20
source share
5 answers
ALTER TABLE YourTable ALTER COLUMN YourColumn columnType NULL 
+158
Jul 30 '10 at 9:22
source share

Remove restriction not null to null

 ALTER TABLE 'test' CHANGE COLUMN 'testColumn' 'testColumn' datatype NULL; 
+3
Aug 19 '16 at 18:59
source share

Remove column constraint: not null to null

 ALTER TABLE test ALTER COLUMN column_01 DROP NOT NULL; 
0
Apr 18 '19 at 12:17
source share

For posterity only:

I declared my column name as follows:

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

To successfully delete the name <column_name> programmatically, you must declare your column as follows:

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

To DROP <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>
-2
Jul 11 '12 at 17:13
source share

You must remove any restrictions before deleting, not a null column.

 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>') 

This works for me.

-2
Apr 01 '14 at 10:32
source share