sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra en CHECK-begränsning i SQL Server med T-SQL

Om du redan har en befintlig CHECK begränsning i SQL Server, men du måste ändra den, du måste släppa den och återskapa den. Det finns ingen ALTER CONSTRAINT uttalande eller något liknande.

Så för att "modifiera" en befintlig begränsning:

  1. Släpp begränsningen med ALTER TABLE med DROP CONSTRAINT .
  2. Skapa den nya begränsningen med ALTER TABLE med ADD CONSTRAINT .

Exempel

Här är ett exempel på hur du släpper och återskapar en CHECK begränsning.

ALTER TABLE ConstraintTest 
  DROP CONSTRAINT chkTeamSize;

ALTER TABLE ConstraintTest
  ADD CONSTRAINT chkTeamSize 
  CHECK (TeamSize >= 5 AND TeamSize <= 20)
  ;

Som nämnts kan du inte ändra det – du måste släppa det och skapa det med den nya definitionen.

I det här fallet kallas begränsningen chkTeamSize och jag släpper det helt enkelt och skapar det med den nya definitionen.

En anmärkning om beställning

Observera att CHECK begränsningar valideras i den ordning som de skapas, så att släppa/återskapa en begränsning kan göra att den valideras i en annan ordning än tidigare. Detta kan resultera i att andra fel fångas upp före denna begränsning, när de tidigare fångades efter.


  1. Hur man skapar VARRAYs som databasobjekt i Oracle Database

  2. Så här kontrollerar du din PostgreSQL-version

  3. Använda Jenkins med Kubernetes AWS, del 3

  4. SQL-uppdateringsfråga med joins