See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 12386|Vastuse: 0

[Allikas] SqlServer rakendab uue kirje ID

[Kopeeri link]
Postitatud 15.06.2016 11:45:40 | | |

Allikas: Internet Autor: teadmata

- Luua andmebaase ja tabeleid

loo andmebaas MyDataBase

kasuta MyDataBase'i

loo tabel Mytable

id int identiteet(1,1),

Nimi Varchar(20)



--Käivita see SQL, et teada saada iseinkrementaalse veeru väärtus, mis vastab just sisestatud kirjele

sisesta Mytable'i väärtustesse ('Li Si')

vali @@identity

2. Kolme meetodi võrdlus

SQL Server 2000-s on kolm sarnast funktsiooni: SCOPE_IDENTITY, IDENT_CURRENT ja @@IDENTITY, mis kõik tagastavad väärtused, mis on lisatud IDENTITY veergu.

IDENT_CURRENT Tagastab viimase identifitseerimisväärtuse, mis genereeritakse konkreetse tabeli jaoks igas sessioonis ja mis tahes ulatuses. IDENT_CURRENT Ei ole piiratud ulatuse ja sessiooniga, vaid kindla tabeliga. IDENT_CURRENT Tagastab väärtuse, mis genereeritakse konkreetse tabeli jaoks igas sessioonis ja ulatuses.

@@IDENTITY Tagastab viimase identifitseerimisväärtuse, mis genereeritakse mis tahes tabeli jaoks kõigis käesoleva sessiooni ulatustes.

SCOPE_IDENTITY Tagastab viimati tuvastatud väärtuse, mis genereeriti praeguse sessiooni jaoks, ning mis tahes tabeli praeguses ulatuses

SCOPE_IDENTITY ja @@IDENTITY tagastavad viimase identifitseerimisväärtuse, mis genereeriti mis tahes tabelis käesoleval sessioonil. Kuid SCOPE_IDENTITY tagastab ainult väärtused, mis on sisestatud praegusesse ulatusse; @@IDENTITY Ei piirdu ainult kindla ulatusega.

Näiteks on kaks tabelit, T1 ja T2, kus on määratletud INSERT päästik. Kui rida lisatakse T1-sse, käivitatakse päästik ja rida lisatakse T2-sse. See näide illustreerib kahte sihikut: üht T1-l ja teist T2-l päästiku tulemusena.

Eeldades, et nii T1-l kui T2-l on IDENTITY-veergud, tagastavad @@IDENTITY ja SCOPE_IDENTITY INSERT-lause lõpus T1-l erinevad väärtused.

@@IDENTITY Tagastab viimase IDENTITY-veeru väärtuse, mis on sisestatud mis tahes ulatusse praeguses sessioonis, mis on T2-sse lisatud.

SCOPE_IDENTITY() tagastab IDENTITY väärtuse, mis on sisestatud T1-sse, mis on viimane INSERT, mis toimus samas ulatuses. Kui SCOPE_IDENTITY() funktsioon kutsutakse välja enne, kui identiteediveeru sisestuslause toimub ulatuses, tagastab funktsioon NULL väärtuse.

IDENT_CURRENT('T1') ja IDENT_CURRENT('T2') tagastatud väärtused on vastavalt kahe tabeli viimased iseinkrementaalsed väärtused.

ajqc eksperiment: (40 kohalikku lõime, 40+40 kauglõime samaaegne test, lisades 1200W rida), järeldus on:

1. Tüüpilistes kaskaadirakendustes. @@IDENTITY ei saa kasutada ning samaaegsed konfliktid tekivad, kui 1W on mitmerealine CII850, 256M SD masinatel. P42.8C ja 512M DDR puhul on samaaegne konflikt, kui liini on üle 6000.

2.SCOPE_IDENTITY() on täiesti usaldusväärne ja seda saab kasutada salvestusprotsessis, isegi päästikuid pole vaja ehitada ning paralleelseid konflikte ei teki

SELECT IDENT_CURRENT('TableName') - Tagastab määratud tabelis genereeritud viimase sildi väärtuse

SELECT IDENT_INCR('TableName') – tagastab määratud tabeli märgitud välja kasvu väärtuse

SELECT IDENT_SEED('TableName') – tagastab määratud tabeli märgitud välja seemne väärtuse

Tagastab viimase sisestatud kirje automaatse numbri

SELECT IDENT_CURRENT('TableName')

Naase järgmise automaatse numbri juurde:

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

SELECT @@IDENTITY - Tagastab viimase märgitud väärtuse, mis genereeriti kõigis tabelites praeguses sessioonis








Eelmine:SQLServer rakendab universaalset meetodit stringide jagamiseks
Järgmine:Jaga kasulikku otsinguartefakti
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com