Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12386|Vastaus: 0

[Lähde] SqlServer toteuttaa juuri lisätyn tietueen ID:n

[Kopioi linkki]
Julkaistu 15.6.2016 11.45.40 | | |

Lähde: Internet Tekijä: Tuntematon

- Luo tietokantoja ja tauluja

luo tietokanta MyDataBase

käytä MyDataBasea

luo taulu mytable

id int identiteetti(1,1),

Nimi Varchar(20)



--Suorita tämä SQL selvittääksesi itseinkrementaalisen sarakkeen arvon, joka vastaa juuri lisättyä tietuetta

lisää mytable-arvoihin ('Li Si')

Valitse @@identity

2. Kolmen menetelmän vertailu

SQL Server 2000:ssa on kolme samankaltaista ominaisuutta: SCOPE_IDENTITY, IDENT_CURRENT ja @@IDENTITY, jotka kaikki palauttavat arvoja, jotka on lisätty IDENTITY-sarakkeeseen.

IDENT_CURRENT Palauttaa viimeisimmän tunnistearvon, joka on luotu tietylle taululle missä tahansa istunnossa ja missä tahansa laajuudessa. IDENT_CURRENT Ei rajoitettu laajuuteen ja istuntoon, vaan määriteltyyn taulukkoon. IDENT_CURRENT Palauttaa arvon, joka on generoitu tietylle taululle missä tahansa sessiossa ja laajuudessa.

@@IDENTITY Palauttaa viimeisimmän tunnistearvon, joka on luotu mille tahansa taululle kaikissa nykyisessä istunnossa.

SCOPE_IDENTITY Palauttaa viimeksi tunnistetun arvon, joka tuotettiin nykyiselle istunnolle, sekä minkä tahansa taulukon nykyisessä laajuudessa

SCOPE_IDENTITY ja @@IDENTITY palauttavat viimeisimmän tunnistearvon, joka on luotu missä tahansa taulukossa nykyisessä istunnossa. Kuitenkin SCOPE_IDENTITY palauttaa vain arvot, jotka on lisätty nykyiseen scopeen; @@IDENTITY Ei rajoitu tiettyyn laajuuteen.

Esimerkiksi on kaksi taulukkoa, T1 ja T2, joissa määritellään INSERT-liipaisin. Kun rivi lisätään T1:een, laukaisu aktivoituu ja rivi lisätään T2:een. Tämä esimerkki havainnollistaa kahta tähtäintä: yhden T1:llä ja toisen T2:lla laukaisumekanismin seurauksena.

Oletetaan, että sekä T1:llä että T2:lla on IDENTITY-sarakkeet, @@IDENTITY ja SCOPE_IDENTITY palauttavat eri arvot INSERT-lauseen lopussa T1:llä.

@@IDENTITY Palauttaa viimeisen IDENTITY-sarakkeen arvon, joka lisätään mihin tahansa skooppiin nykyisessä istunnossa, joka on T2:ssa lisätty arvo.

SCOPE_IDENTITY() palauttaa IDENTITY-arvon, joka on syötetty T1:een, joka on viimeinen INSERT, joka tapahtui samassa scopessa. Jos SCOPE_IDENTITY()-funktio kutsutaan ennen identiteettisarakkeen insertiolausetta scope-alueella, funktio palauttaa NULL-arvon.

IDENT_CURRENT('T1') ja IDENT_CURRENT('T2') palauttamat arvot ovat kahden taulukon viimeiset itseinkrementaaliset arvot.

ajqc:n koe: (40 paikallista säiettä, 40+40 etäsäiettä samanaikaisesti testattu, lisätty 1200W riviä), johtopäätös on:

1. Tyypillisissä kaskadisovelluksissa. @@IDENTITY ei ole käytettävissä, ja samanaikaisia ristiriitoja syntyy, kun 1W on monirivinen CII850- ja 256M SD -koneissa. P42.8C:llä ja 512M DDR:llä on samanaikainen ristiriita, kun linjaa on vain yli 6000.

2.SCOPE_IDENTITY() on täysin luotettava ja sitä voidaan käyttää tallennusprosessissa, edes laukaisimet eivät tarvitse rakentaa, eikä samanaikaisesti ole ristiriitoja

SELECT IDENT_CURRENT('TableName') - Palauttaa viimeisen tunnistearvon, joka on luotu määritetyssä taulukossa

SELECT IDENT_INCR('TableName') – palauttaa merkityn kentän lisäysarvon määritetylle taululle

SELECT IDENT_SEED('TableName') - palauttaa merkityn kentän siemenarvon määritellystä taulukosta

Palauttaa viimeksi lisätyn tietueen automaattisen numeron

VALITSE IDENT_CURRENT('TableName')

Palaa seuraavaan automaattiseen numeroon:

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

SELECT @@IDENTITY - Palauttaa viimeksi merkityn arvon, joka on luotu kaikissa taulukoissa nykyisessä istunnossa








Edellinen:SQLServer toteuttaa universaalin menetelmän merkkijonojen jakamiseen
Seuraava:Jaa hyödyllinen hakuartefakti
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com