Condividi tramite


Creare vincoli di controllo CHECK

È possibile creare un vincolo CHECK in una tabella per specificare i valori di dati accettabili in una o più colonne in SQL Server 2014 usando SQL Server Management Studio o Transact-SQL.

Contenuto dell'articolo

Prima di iniziare

Sicurezza

Autorizzazioni

Sono necessarie autorizzazioni ALTER per la tabella.

Uso di SQL Server Management Studio

Per creare un nuovo vincolo CHECK

  1. In Esplora oggetti espandere la tabella in cui si desidera aggiungere un vincolo check, fare clic con il pulsante destro del mouse su Vincoli e scegliere Nuovo vincolo.

  2. Nella finestra di dialogo Vincoli di controllo, fare clic nel campo Espressione e quindi fare clic sui puntini (...).

  3. Nella finestra di dialogo Espressione vincolo CHECK immettere le espressioni SQL per il vincolo CHECK: Ad esempio, per limitare le voci nella SellEndDate colonna della Product tabella a un valore maggiore o uguale alla data nella SellStartDate colonna oppure è un valore NULL, digitare:

    SellEndDate >= SellStartDate OR SellEndDate IS NULL  
    

    In alternativa, per richiedere che nella colonna zip le voci siano di 5 cifre, digitare:

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'  
    

    Annotazioni

    Assicurarsi di racchiudere qualsiasi valore di vincolo non numerico tra virgolette singole (').

  4. Fare clic su OK.

  5. Nella categoria Identità è possibile modificare il nome del vincolo CHECK e aggiungere una descrizione (proprietà estesa) per il vincolo.

  6. Nella categoria Progettazione tabelle è possibile impostare quando deve essere applicato il vincolo.

    A: Selezionare Sì nei campi seguenti:
    Testare il vincolo su dati che esistevano prima di creare il vincolo Verificare i dati esistenti durante la creazione o l'abilitazione
    Applicare il vincolo quando si verifica un'operazione di replica su questa tabella Imporre per Replicazione
    Applicare il vincolo ogni qualvolta una riga di questa tabella viene inserita o viene aggiornata Applica per INSERT e UPDATE
  7. Fare clic su Close.

Uso di Transact-SQL

Per creare un nuovo vincolo di controllo

  1. In Esplora oggetti, collegarsi a un'istanza di Database Engine.

  2. Sulla barra Standard fare clic su Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.

    ALTER TABLE dbo.DocExc   
       ADD ColumnD int NULL   
       CONSTRAINT CHK_ColumnD_DocExc   
       CHECK (ColumnD > 10 AND ColumnD < 50);  
    GO  
    -- Adding values that will pass the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);  
    GO  
    -- Adding values that will fail the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);  
    GO  
    
    

Per altre informazioni, vedere ALTER TABLE (Transact-SQL).