Temat: Pole autoincrement


Temat: Pole autoincrement
Data: 2013-06-01
Treść:
Utworzenia pola autoincrement:
create table test1( id int identity(1,1), opis varchar(255)) 
Pierwszy parametr identity określa od jakiej wartości startujemy, drugi o ile ma być zwiększany licznik. Jak widać identity jest fajne, ale może nam przysporzyć kłopotów w sytuacji kiedy ładujemy sporo danych do bazy. Co się bowiem stanie jeśli będziemy chcieli załadować do kolumny z ustawiona indetity jakąś wartość? Odpowiedź: to zależy: Zależy od ustawienia opcji, jeżli ustawimy bowiem: - set IDENTITY_INSERT nazwa_tablicy ON, będziemy mogli ładować do kolumn oznaczonych identity nowe wartości. - set IDENTITY_INSERT nazwa_tablicy OFF(domyślnie), nie będziemy mogli wcale ładować nowe wartości, baza zwróci błąd. Aby przy ładowaniu programami zewnętrznymi, również można wkładać do bazy identity należy dla: - programu bcp ustawić znacznik -E - polecenia BULK INSERT oraz INSERT ... SELECT * FROM OPENROWSET(BULK...) podać argument KEEPIDENTITY Ogólnie korzystając z identity można też zaprzyjaźnić się z poleceniem DBCC CHECKIDENT(nazwa_tablicy, [opcje]), ja wykorzystuje ja aby ustawiać okresowo wartość klucza tablicy na 1: DBCC CHECKIDENT(t_dane, RESEED, 1) Dodatkowo, choć na początku nie mogłem uwierzyć, że o identity można pisać artykuły:), ciekawe informacje są na: http://technet.microsoft.com/en-us/library/ms186335.aspx http://www.microsoft.com/poland/technet/article/art026.mspx
<< Powrót <<

powered by sw