Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

Inserire un record usando i valori di default.

Quando creiamo un tabella in SQL Server è possibile attribuire, oltre al tipo di dato che conterranno le varie colonne, anche un loro valore di default.
Tale valore verrà utilizzato per riempire i singoli campi quando non viene specificato il valore di una determinata colonna.
Come è possibile, però, creare un nuovo record contenente SOLO i valori di defautl?
Facciamo un esempio

Set nocount ON;
USE tempdb
-- Definisco una tabella temporanea assegnando ai campi
-- dei valori di default
CREATE TABLE myTable
        (
  Nome varchar(25) DEFAULT 'Sandro',
        Cognome varchar(25) DEFAULT 'Bizioli',
  Indirizzo varchar(50) DEFAULT 'Via',
  Citta Varchar(20) NULL 
        )  ON [PRIMARY]
GO

-- Popolo la tabella passando almeno il valore di un campo
-- e lasciando riempire gli altri con i valori di default
INSERT INTO myTable(Nome)
VALUES (NULL)

--Inserisco TUTTI i valori di default
INSERT mytable DEFAULT VALUES

-- Recuper i dati appena inseriti
SELECT * FROM mytable

/* OUTPUT
Nome    Cognome   Indirizzo   Citta
------- --------- ----------- -------
NULL    Bizioli   Via         NULL
Nuovo   Bizioli   Via         NULL
*/
                                     
--Elimino la tabella temporanea
DROP TABLE myTable
SET NOCOUNT OFF;

Quello che possiamo notare è che se tento di fare una semplice insert sono obbligato a passare almeno un valore, nel mio esempio il nome.
Così facendo, però, la colonna nome, non utilizzerà il valore di default (Sandro), ma giustamente, userà il valoro che gli ho passato come si può notare nella prima riga dell'output.
Nel secondo caso, però, l'intero record sarà riempito con tutti i valori di default. (v. seconda riga dell'output)
Categoria: SQL Server
lunedì, 27 feb 2006 Ore. 17.36
Statistiche
  • Views Home Page: 104.951
  • Views Posts: 522.304
  • Views Gallerie: 84.594
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003