Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12402|Odpowiedź: 3

[Źródło] Zaktualizuj metodę działania kolumny samorosnącego ID w bazie SQL Server

[Skopiuj link]
Opublikowano 23.08.2018 12:20:44 | | | |
W codziennym rozwoju SQL Server kolumna tożsamości typu Identity jest często używana jako samorosnący numer struktury tabeli. Na przykład numer artykułu, numer seryjny rekordu itd. Odwołania do samorosnących zidentyfikowanych kolumn znacznie ułatwiają rozwój programów bazodanowych, ale czasem ten uparty typ pola może również powodować pewne problemy.

1. Zmodyfikuj wartości pól w kolumnie identyfikacyjnej:

Czasami, aby zaimplementować funkcję, konieczne jest zmodyfikowanie wartości pola typu Identity self-growing, ale ta operacja nie jest domyślnie dozwolona ze względu na typ kolumny tożsamości. Na przykład, jeśli do bazy danych dodano normalnie 5 fragmentów, a 2 zostały usunięte w tym momencie, to jeśli dane zostaną dodane ponownie, kolumna identyfikacyjna samorosnąca automatycznie otrzyma wartość 6, ale jeśli chcesz przypisać wartość 3 podczas wstawiania danych, domyślnie to nie jest dozwolone. Jeśli chcesz zmienić wartość tego pola, możesz całkowicie kontrolować wstawianie wartości pola identyfikacyjnego, są jeszcze metody, haha.

USTAW IDENTITY_INSERT /[STÓŁ/] [WŁĄCZONY| WYŁĄCZONE]
Korzystając z powyższego stwierdzenia, możesz łatwo kontrolować, czy kolumna samorosnącego identyfikatora w tabeli będzie automatycznie rosła, czyli czy możesz ręcznie określić wartość pola kolumny identyfikatora podczas wstawiania rekordu. Jeśli określono jako włączone, możesz określić wartość pola identyfikującej kolumny podczas wstawiania, co nie powoduje automatycznego wzrostu przypisanej wartości. Oczywiście, jeśli go zużyjesz, musisz użyć tego polecenia, aby wyłączyć przełącznik do domyślnego stanu, w przeciwnym razie pole nie zwiększy automatycznie przypisanej wartości przy następnym wstawieniu danych.

2. Zresetuj wartość pola kolumny identyfikacyjnej:

Gdy część rekordu danych zostanie usunięta, a nowy rekord dodany później, wartość kolumny identyfikacyjnej będzie miała długi okres bezczynności, co wygląda bardzo nieprzyjemnie. Nawet jeśli usuniesz wszystkie rekordy w tabeli, wartość kolumny tożsamości będzie nadal rosła automatycznie i nieustannie rosła, zamiast rosnąć od zera. Wartość nasion samorosnącego pola można zresetować, używając następującego stwierdzenia:

DBCC CHECKIDENT(TABLE, [RESEED| NORESEED], [1])
Powyższe sformułowanie wymusi reset wartości seed określonej tabeli do 1. Jeśli jednak nie chcesz resetować seeda do 1, możesz zastąpić trzeci parametr wartością seeda, którą chcesz użyć. Jeśli chcesz znać aktualne seedy, zamiast resetować zidentyfikowane seed, musisz użyć NORESEED zamiast ustawiać trzeci parametr.




Poprzedni:Kolumny automatycznego wzrostu SQL Server 2012 z problemami skoku wartości
Następny:Windows nie uruchamia usługi Redis, błąd 1067: Proces niespodziewanie się kończy.
 Ziemianin| Opublikowano 23.08.2018 12:57:08 |
1. Gdy wszystkie dane w tabeli zostaną usunięte, automatycznie zwiększono je do zera. ( obcinaj tabelę TableName )

2. Nie usuwaj danych tabeli, bezpośrednio resetuj wartość automatycznego wzrostu. ( CHECKIDENT DBCC ('TableName', RESEED, 0)
 Ziemianin| Opublikowano 23.08.2018 13:01:32 |
 Ziemianin| Opublikowano 13.02.2019 09:59:15 |
Zobacz aktualne wartości samoprzyrastających kolumn w tabeli:
    DBCC CHECKIDENT (TableName)

Zmodyfikuj aktualną wartość samoprzyrastające kolumny w tabeli:
    DBCC CHECKIDENT (TableName, RESEED, value)
    RESEED nie jest nazwą kolumny, jest zapisywana w stały sposób.


Na przykład, jeśli chcę zmienić aktualną wartość kolumny samoprzyrastających w tabeli podziału na 30, mogę użyć następującego polecenia
DBCC CHECKIDENT (Dywizja, RESEED, 30)
Następnie użyj
DBCC CHECKIDENT (Wydział)
Widać, że obecna wartość to 30
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com