sql >> Databasteknik >  >> RDS >> Sqlserver

Släpp icke namngivna begränsningar

Använd följande kod för att ta bort en enskild icke namngiven standardbegränsning på en kolumn:

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

Om du vill göra detta för en standardkolumn, vilket förmodligen är vanligare än den ursprungliga frågan och jag är säker på att många människor kommer att landa på detta från en Google-sökning, är det bara att ändra raden:

obj.type = 'F'

till

obj.type = 'D'


  1. Hur använder man scheman i Django?

  2. Det aktuella tillståndet för Open Source Backup Management för PostgreSQL

  3. Förstå pdo mysql-transaktioner

  4. Postgresql skapar inte db med "createdb" som superanvändare, men matar inte ut fel