ustawiania wartosci klucza

0

Hej

Jak ustawic klucz podstawowy tabeli o właściwości IDENTITY (AUTO-INCREMENT) na 1- podczas kasowania danych z tabeli i wczytaniu nowych, ID posiada nie 1 a kolejna wartosc dla bazy MSSQL 2005

0

Zamiast poleceniem:

delete * from Tabela

usuwaj dane poprzez:

truncate table Tabela
0

A czemu w ogole ustawiac klucz autonumerowany?

0

Marcin - mylisz się TRUNCATE TABLE nie ustawia IDENTITY na wartość 1 i nie działa przy relacjach- gdy powiązane ze sobą co najmniej 2 tabele

johny_bravo - a po to że jest wygodnie

W każdym razie znalazłem to czego szukałem :

SET IDENTITY_INSERT MojaTabela ON

INSERT  INTO MK_MojaTabela (IDmain) VALUES (1)

SET IDENTITY_INSERT MojaTabela OFF

0
rolo9 napisał(a)

Marcin - mylisz się TRUNCATE TABLE nie ustawia IDENTITY na wartość 1

Tu akurat nie masz racji, truncate ustawia Identity na 1 (sprawdzone na MS SQL 2005).

rolo9 napisał(a)

i nie działa przy relacjach- gdy powiązane ze sobą co najmniej 2 tabele

Zgadza się.

rolo9 napisał(a)

SET IDENTITY_INSERT MojaTabela ON

INSERT  INTO MK_MojaTabela (IDmain) VALUES (1)

SET IDENTITY_INSERT MojaTabela OFF

To rozwiązanie też nie do końca zadziała. Jeżeli miałeś w tabeli 100 rekordów, usunąłeś wszystkie i powyższym sposobem wstawiłeś 50 rekordów, to co prawda mają one ID od 1 do 50 ale następny rekord wstawiony bez użycia IDENTITY_INSERT będzie miał ID 101.

0

Tu akurat nie masz racji, truncate ustawia Identity na 1 (sprawdzone na MS SQL 2005).

tak, tak zgadza się, z rozmachu napisałem, a chodziło mi o relacje na tabelach.

Przetestowałem ten przykład i lipa, normalnie jakaś rzeź, czyżby nie można było tego zrobić, poszukiwania trwają ...

0

Po usunięciu danych za pomocą polecenia DELETE, wykonaj:

DBCC CHECKIDENT ('nazwa_tabeli', RESEED, 0)
0

kurcze działa, WIELKIE DZIĘKUJĘ ZA POMOC [browar]

0

Czytam, czytam i nie wiem, gdzie tu wygoda ;) Wygodnie to jest zostawic numeracje serwerowi...

1 użytkowników online, w tym zalogowanych: 0, gości: 1