Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Modificar uma restrição CHECK no SQL Server usando T-SQL


Se você já tem um CHECK existente restrição no SQL Server, mas você precisa modificá-la, você precisará eliminá-la e recriá-la. Não há ALTER CONSTRAINT declaração ou algo semelhante.

Então, para “modificar” uma restrição existente:
  1. Retire a restrição usando ALTER TABLE com DROP CONSTRAINT .
  2. Crie a nova restrição usando ALTER TABLE com ADD CONSTRAINT .


Exemplo


Aqui está um exemplo de como descartar e recriar um CHECK limitação.
ALTER TABLE ConstraintTest 
  DROP CONSTRAINT chkTeamSize;

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

Como mencionado, você não pode modificá-lo – você precisa soltá-lo e criá-lo com a nova definição.

Nesse caso, a restrição é chamada chkTeamSize e eu simplesmente deixo cair e crio com a nova definição.

Uma observação sobre pedidos


Observe que CHECK as restrições são validadas na ordem em que são criadas, portanto, descartar/recriar uma restrição pode fazer com que ela seja validada em uma ordem diferente da anterior. Isso pode resultar na captura de outros erros antes dessa restrição, quando foram capturados anteriormente.