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
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
WITH VALUES
vale valori predefiniti per i campi nulli
http://technet.microsoft.com/en-us/library/ms187742.aspx e short blog post su di esso.
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
)
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.
Chiunque stia leggendo questa risposta, si prega di leggere anche la risposta di marc_s in quanto fornisce maggiori dettagli. – zedfoxus