sql >> Databáze >  >> RDS >> Sqlserver

Odstranění nepojmenovaných omezení

Chcete-li upustit jednotlivé nepojmenované výchozí omezení na sloupec, použijte následující kód:

DECLARE @ConstraintName VARCHAR(256)
SET @ConstraintName = (
     SELECT             obj.name
     FROM               sys.columns col 

     LEFT OUTER JOIN    sys.objects obj 
     ON                 obj.object_id = col.default_object_id 
     AND                obj.type = 'F' 

     WHERE              col.object_id = OBJECT_ID('TableName') 
     AND                obj.name IS NOT NULL
     AND                col.name = 'ColunmName'
)   

IF(@ConstraintName IS NOT NULL)
BEGIN
    EXEC ('ALTER TABLE [TableName] DROP CONSTRAINT ['[email protected]+']')
END

Pokud to chcete udělat pro výchozí sloupec, který je pravděpodobně častější než původní otázka a jsem si jistý, že na to při vyhledávání Google přijde mnoho lidí, pak stačí změnit řádek:

obj.type = 'F'

do

obj.type = 'D'


  1. Když je přidán nový řádek v databázi, musí být vyvolán externí program příkazového řádku

  2. Jak získám své uživatelské jméno a heslo pro MySQL?

  3. Chyba serveru SQL 4104:Vícedílný identifikátor nelze svázat.

  4. Jak nainstalovat Cassandra v3 na CentOS 6