Che cos'è il vincolo predefinito in SQL Server:
Il vincolo predefinito inserisce il valore predefinito in una colonna quando non si fornisce un valore per la colonna.Capiamo usando gli esempi seguenti.
Scenario:
Diciamo che devi creare una tabella dbo.Customer con Nome, Cognome, Nome Paese e Regione. Se l'utente non fornisce i valori per le colonne Country Name e Region, vuoi sempre inserire Country Name='USA' e per Region='Nord America'.Lo script seguente può essere utilizzato per creare un vincolo predefinito per le colonne Country Name e Region.
USE YourDatabaseName GO CREATE TABLE dbo.Customer ( FirstName VARCHAR(50) ,LastName VARCHAR(50) ,CountryName VARCHAR(50) DEFAULT 'USA' ,Region VARCHAR(50) DEFAULT 'North America' )
Ora inserisci un paio di record fornendo valori per tutte le colonne utilizzando le istruzioni di inserimento sottostanti.
--Insert some sample data by provided CountryName and Region Insert into dbo.Customer (FirstName,LastName,CountryName,Region) Values('Aamir','Shahzad','Pakistan','Asia') go Insert into dbo.Customer (FirstName,LastName,CountryName,Region) Values('Sukhjeet','Singh','India','Asia') go
Ora inserisci solo i valori nelle colonne Nome e Cognome. Poiché abbiamo creato il vincolo predefinito su nome paese e regione, dovrebbe inserire automaticamente CountryName='USA' e Region='Nord America'.
Insert into dbo.Customer(FirstName,LastName) Values ('John','Smith') go Insert into dbo.Customer(FirstName,LastName) Values ('Christy','Ladson')
Controlliamo i dati nella tabella dbo.Customer per assicurarci che i nostri vincoli predefiniti funzionino come previsto.
Select * from dbo.Customer
Come creare un vincolo predefinito in SQL Server |
Quando abbiamo creato i vincoli predefiniti, non abbiamo fornito alcun nome, controlliamo quali nomi ha assegnato loro SQL Server utilizzando sys.objects
--Get the Constraint Names in SQL Server Select * from sys.objects where type_desc='DEFAULT_CONSTRAINT'
Come controllare le informazioni sui vincoli predefiniti in SQL Server |
Se la tua azienda utilizza alcuni standard di denominazione e desideri creare il vincolo predefinito con tali standard, puoi specificare il nome durante la creazione. Sto usando DF_SchemaName_TableName_ColumnName per il mio nome di vincolo come mostrato di seguito.
use YourDatabaseName Go Create Table dbo.tblCustomer ( FirstName VARCHAR(50), LastName VARCHAR(50), CountryName VARCHAR(50) Constraint DF_dbo_tblCustomer_CountryName Default 'USA' , Region VARCHAR(50) Constraint DF_dbo_tblCustomer_Region default 'North America')
Eseguiamo la query su sys.objects ancora una volta per ottenere il nome del vincolo predefinito con il nome della tabella.
--Get the Constraint Names in SQL Server Select name,object_name(Parent_object_id) as TableName from sys.objects where type_desc='DEFAULT_CONSTRAINT'
Come creare un vincolo predefinito con il nome in SQL Server |
Video demo:cos'è il vincolo predefinito in SQL Server e come creare un vincolo predefinito