Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12402|Atsakyti: 3

[Šaltinis] Atnaujinkite savaime augančio ID stulpelio veikimo metodą SQL serverio duomenų bazėje

[Kopijuoti nuorodą]
Paskelbta 2018-08-23 12:20:44 | | | |
Kasdien kuriant SQL serverį, tapatybės tipo tapatybės stulpelis dažnai naudojamas kaip savaime augantis lentelės struktūros skaičius. Pavyzdžiui, prekės numeris, įrašo serijos numeris ir kt. Nuorodos į savaime augančius identifikuotus stulpelius labai palengvina duomenų bazių programų kūrimą, tačiau kartais šis užsispyręs lauko tipas taip pat gali sukelti tam tikrų problemų.

1. Pakeiskite identifikavimo stulpelio lauko reikšmes:

Kartais, norint įgyvendinti funkciją, reikia modifikuoti Tapatybės savaime augančio tipo lauko reikšmę, tačiau ši operacija pagal numatytuosius nustatymus neleidžiama dėl tapatybės stulpelio tipo. Pavyzdžiui, jei duomenų bazėje paprastai pridedami 5 duomenų vienetai, o 2 šiuo metu ištrinami, tada, jei duomenys bus pridėti dar kartą, savaime augančiam identifikavimo stulpeliui bus automatiškai priskirta 6 reikšmė, tačiau jei įterpdami duomenis norite priskirti 3 reikšmę, pagal numatytuosius nustatymus tai neleidžiama. Jei norite pakeisti šio lauko vertę, galite visiškai kontroliuoti identifikavimo lauko vertės įterpimą, vis dar yra metodų, haha.

NUSTATYTI IDENTITY_INSERT /[LENTELĖ/] [ĮJUNGTA| IŠJUNGTA]
Naudodamiesi aukščiau pateiktu teiginiu, galite lengvai kontroliuoti, ar savaime augantis identifikatoriaus stulpelis lentelėje automatiškai augs, tai yra, ar įterpiant įrašą leidžiama rankiniu būdu nurodyti identifikatoriaus stulpelio lauko reikšmę. Jei nurodyta kaip įjungta, įterpdami galite nurodyti identifikavimo stulpelio lauko reikšmę, kuri automatiškai nepadidina priskirtos reikšmės. Žinoma, jei jį sunaudosite, turite naudoti šį teiginį, kad išjungtumėte jungiklį į numatytąją būseną, kitaip laukas automatiškai nepadidins priskirtos vertės, kai kitą kartą įterpsite duomenis.

2. Iš naujo nustatykite identifikavimo stulpelio lauko reikšmę:

Panaikinus dalį duomenų įrašo, vėliau pridedant naują duomenų įrašą, identifikavimo stulpelio reikšmė turės didelį tuščiosios eigos intervalą, o tai atrodo labai nemalonu. Net jei panaikinsite visus lentelės įrašus, tapatybės stulpelio reikšmė ir toliau didės automatiškai ir be galo, o ne augs nuo nulio. Savaime augančio lauko sėklos vertę galima iš naujo nustatyti naudojant šį teiginį:

DBCC CHECKIDENT(LENTELĖ, [IŠ NAUJO| NORESEED], [1])
Aukščiau pateiktas teiginys privers nurodytos lentelės pradinę reikšmę iš naujo nustatyti į 1. Tačiau, jei nenorite iš naujo nustatyti sėklos į 1, galite pakeisti trečiąjį parametrą norima naudoti pradinės vertės reikšme. Jei norite sužinoti dabartinę sėklą, o ne iš naujo nustatyti nustatytą sėklą, turite naudoti NORESEED, o ne nustatyti trečią parametrą.




Ankstesnis:"SQL Server 2012" automatinio augimo stulpeliai su reikšmių šuolio problemomis
Kitą:"Windows" nepavyksta paleisti "Redis" paslaugos, klaida 1067: procesas netikėtai nutraukiamas.
 Savininkas| Paskelbta 2018-08-23 12:57:08 |
1. Kai visi lentelės duomenys bus ištrinti, jie bus automatiškai padidinti iki nulio. ( sutrumpinti lentelę TableName )

2. Neištrinkite lentelės duomenų, tiesiogiai iš naujo nustatykite automatinio augimo vertę. ( DBCC CHECKIDENT('TableName', RESEED, 0)
 Savininkas| Paskelbta 2018-08-23 13:01:32 |
 Savininkas| Paskelbta 2019-02-13 09:59:15 |
Peržiūrėti dabartines lentelės savaime didėjančių stulpelių reikšmes:
    DBCC CHECKIDENT (lentelės pavadinimas)

Modifikuoti dabartinę lentelės savaime didėjančio stulpelio reikšmę:
    DBCC CHECKIDENT (lentelės pavadinimas, RESEED, reikšmė)
    RESEED nėra stulpelio pavadinimas, jis parašytas fiksuotu būdu.


Pavyzdžiui, jei noriu pakeisti dabartinę lentelės Padalijimas stulpelio reikšmę į 30, galiu naudoti šią komandą
DBCC CHECKIDENT (divizionas, RESEED, 30)
Tada naudokite
DBCC CHECKIDENT (skyrius)
Matote, kad dabartinė vertė yra 30
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com