2013-09-08 17 views
27

Ho cercato di capire cosa fa l'istruzione WITH VALUES?CON VALORI TSQL

Non riesco a trovare alcuna documentazione che lo spieghi correttamente.

ALTER TABLE Table1 
ADD newGuidId UniqueIdentifier NULL CONSTRAINT DF_Guid Default newid() 
with values 

risposta

31

Quando si aggiunge una colonna nullablecon un vincolo di default ad un tavolo, poi tutte le righe esistenti ottenere la nuova colonna con un NULL come valore. I valori predefiniti definiti verranno applicati solo alle nuove righe inserite (se non hanno un valore per quella colonna nell'istruzione INSERT).

Quando si specifica WITH VALUES, quindi tutte le righe esistenti ottenere che definisce valore predefinito invece di NULL

Se la colonna si sta aggiungendo al vostro nuovo tavolo è non annullabile e ha un vincolo predefinito , allora quel valore predefinito viene applicato a tutte le righe esistenti nella tabella automaticamente (senza necessità di WITH VALUES perché la colonna deve avere un valore diverso NULL)

0

cON vALORI - Specifica che il valore contumaciale constant_express lo ione viene memorizzato in una nuova colonna aggiunta alle righe esistenti. Se la colonna aggiunta consente valori null e WITH VALUES viene specificato, il valore predefinito viene archiviato nella nuova colonna, aggiunto alle righe esistenti. Se WITH VALUES non è specificato per le colonne che consentono i null, il valore NULL viene memorizzato nella nuova colonna nelle righe esistenti. Se la nuova colonna non consente valori nulli, il valore predefinito viene archiviato in nuove righe indipendentemente dal fatto che sia stato specificato WITH VALUES.