DEFAULT VALUES

Z dokumentacji technet ( http://technet.microsoft.com/en-us/library/ms189909%28v=sql.105%29.aspx )

„(…) When you load a row into a table with a DEFAULT definition for a column, you implicitly instruct the Database Engine to insert a default value in the column when a value is not specified for it.
You can also use the DEFAULT VALUES clause of the INSERT STATEMENT to explicitly instruct the Database Engine to insert a default value for a column. „

Jak wszyscy zapewne wiedzą, możliwe jest ustawienie każdej kolumnie jej wartości zdefiniowanych tzw defaultów. Dzięki temu, gdy podczas ładowania przyjdzie taki wiersz, który nie miał zdefiniowanej kolumny explicite (nie została ona wymieniona w instrukcji INSERT) zamiast wartości NULL wstawi się nam wartość domyślna. Istnieje jednak sposób by jawnie wyrazić chęć wstawienia w danym polu jego wartości domyślnej lub, co najciekawsze (i bardzo przydatne) wszystkich pól za jednym razem!

Na początek prosty przykład tabeli, dla której definiujemy dwa pola. Dodajemy trzy rekordy, z czego tylko dwa maja podane wartości dla drugiej kolumny, w trzecim rekordzie chcielibyśmy by dodał nam tylko wartość do kolumny pierwszej a do drugiej wstawił wartość domyślną:

Wynik:

To teraz bardziej wyszukany przykład.

Często sprawdzam różne rzeczy na dużych tabelach (np indeksy, operacje na danych etc).
Chciałbym wygenerowac sobie tabelę, która będzie zawierała jakieś randomowe dane. Jednym ze sposobów jest utworzenie jej z defualtami i uruchomieniem polecenia INSERT z opcja DEFUALT VALUES, które załaduje defaultowe dane za jednym razem do wszystkich kolumn, wykonam takiego inserta 1000 razy poprzez polecenie GO 1000 :

Wynik:

Post pierwotnie opublikowany jako TSQL na dziś #5

Dodaj komentarz