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

Rodinys: 12386|Atsakyti: 0

[Šaltinis] "SqlServer" įdiegia naujai įterpto įrašo ID

[Kopijuoti nuorodą]
Paskelbta 2016-06-15 11:45:40 | | |

Šaltinis: Internetas Autorius: Nežinomas

- Kurti duomenų bazes ir lenteles

sukurti duomenų bazę MyDataBase

naudoti "MyDataBase"

Kurti lentelę MyTable

id int tapatybė(1,1),

Vardas Varchar(20)



--Vykdykite šį SQL, kad sužinotumėte savaiminio inaugalinio stulpelio reikšmę, atitinkančią ką tik įterptą įrašą

įterpti į mytable reikšmes('Li Si')

Pasirinkite @@identity

2. Trijų metodų palyginimas

SQL Server 2000 yra trys panašios funkcijos: SCOPE_IDENTITY, IDENT_CURRENT ir @@IDENTITY, kurios visos grąžina reikšmes, įterptas į stulpelį IDENTITY.

IDENT_CURRENT Pateikia paskutinę identifikavimo reikšmę, sugeneruotą konkrečiai lentelei bet kuriame seanse ir bet kokioje aprėptyje. IDENT_CURRENT Neribojama aprėptimi ir seansu, bet nurodyta lentele. IDENT_CURRENT Pateikia konkrečios lentelės reikšmę, sugeneruotą bet kuriame seanse ir aprėptyje.

@@IDENTITY Pateikia paskutinę identifikavimo reikšmę, sugeneruotą bet kuriai lentelei visose dabartinio seanso aprėptyse.

SCOPE_IDENTITY Pateikia paskutinę identifikuotą reikšmę, kuri buvo sugeneruota dabartiniam seansui ir bet kuriai dabartinės aprėpties lentelei

SCOPE_IDENTITY ir @@IDENTITY pateikia paskutinę identifikavimo reikšmę, kuri buvo sugeneruota bet kurioje dabartinio seanso lentelėje. Tačiau SCOPE_IDENTITY grąžina tik reikšmes, įterptas į dabartinę aprėptį; @@IDENTITY Neapsiriboja konkrečia taikymo sritimi.

Pavyzdžiui, yra dvi lentelės, T1 ir T2, kuriose apibrėžiamas INSERT paleidiklis. Kai eilutė įterpiama į T1, suveikia gaidukas ir eilutė įterpiama į T2. Šis pavyzdys iliustruoja dvi taikymo sritis: vieną T1 ir kitą T2 dėl trigerio.

Darant prielaidą, kad T1 ir T2 turi IDENTITY stulpelius, @@IDENTITY ir SCOPE_IDENTITY pateiks skirtingas reikšmes T1 sakinio INSERT pabaigoje.

@@IDENTITY Pateikia paskutinę stulpelio IDENTITY reikšmę, įterptą į bet kurią dabartinio seanso aprėptį, kuri yra T2 įterpta reikšmė.

SCOPE_IDENTITY() grąžina IDENTITY reikšmę, įterptą į T1, kuri yra paskutinė INSERT, įvykusi toje pačioje aprėptyje. Jei funkcija SCOPE_IDENTITY() iškviečiama prieš įterpimo sakinį į tapatybės stulpelį aprėptyje, funkcija grąžina NULL reikšmę.

IDENT_CURRENT('T1') ir IDENT_CURRENT('T2') grąžinamos reikšmės yra atitinkamai paskutinės savaiminės abiejų lentelių vertės.

ajqc eksperimentas: (40 vietinių gijų, 40+40 nuotolinių gijų vienu metu vienu metu testas, įterpiant 1200 W eilutes), išvada yra tokia:

1. Tipinėse pakopinėse programose. @@IDENTITY negalima naudoti, o vienu metu kils konfliktų, kai CII850, 256M SD mašinose 1 W yra kelių eilučių. P42.8C ir 512M DDR vienu metu vyksta konfliktas, kai yra tik daugiau nei 6000 linijų.

2.SCOPE_IDENTITY() yra absoliučiai patikimas ir gali būti naudojamas saugojimo procese, net trigerių nereikia statyti, ir nėra lygiagrečių konfliktų

SELECT IDENT_CURRENT('TableName') – pateikia paskutinę etiketės reikšmę, sugeneruotą nurodytoje lentelėje

SELECT IDENT_INCR('TableName') – grąžina pažymėtą nurodytos lentelės lauko prieaugio reikšmę

SELECT IDENT_SEED('TableName') - grąžina pažymėtą nurodytos lentelės lauko pradinę reikšmę

Grąžina automatinį paskutinio įterpto įrašo numerį

SELECT IDENT_CURRENT('TableName')

Grįžti į kitą automatinį numerį:

SELECT IDENT_CURRENT('TableName')+(SELECT IDENT_INCR('TableName'))

SELECT @@IDENTITY – pateikia paskutinę pažymėtą reikšmę, kuri buvo sugeneruota visose dabartinio seanso lentelėse








Ankstesnis:SQLServer įgyvendina universalų eilučių skaidymo metodą
Kitą:Naudingo ieškos artefakto bendrinimas
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