HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Identity funkciók az SQL szerverben


Példaprogram letöltése

1947 bájt

Cikkünkben összefoglaljuk azokat a lehetőségeket, amelyeket az SQL szerver nyújt a rekordok egyedi azonosítását illetően. Az IDENTITY függvények, változók, kapcsolók ismertetése. Segítségükkel biztosított a rekordok egyedi azonosítása. Bizonyos alkalmazásokban elengedhetetlen használatuk, például újonnan felvett rekordok azonosítása esetén.

IDENTITY tulajdonság
Az SQL szerver tábláiban ajánlott használnunk az azonosító, IDENTITY tulajdonságot. Segítségével a tábla rekordjait egyedileg tudjuk azonosítani. Ez a gyakorlatban azt jelenti, hogy új rekord felvételekor az IDENTITY beállításnak megfelelően az adott kulcs egyedi értéket kap.
CREATE TABLE uj_alkalmazottak
(
id_num int IDENTITY(1,1),
vezeteknev varchar (30),
minit char(1),
keresztnev varchar(20)
)
A példa mutatja, hogy hogyan adhatunk meg tábladefinícióban azonosító tulajdonságot. Ebben az esetben két paramétere van az IDENTITY tulajdonságnak:
  • Seed: Kezdeti érték. Az első rekord ezt az értéket veszi fel
  • Increment: A növekedés értéke. Minden újabb rekord az itt meghatározott értékkel növelt azonosítót kapja meg.
Alapértelmezésben, ha nem adjuk meg, akkor az 1-1 paraméterértékek szerint készül el a tábla. Az első id_num rekord tehát 1-es, a következő 2-es értékű lesz.
SET IDENTITY_INSERT
IDENTITY oszlop használata esetén a rekord azonosító értékét új rekord felvételekor a szerver tölti ki, nekünk nincs módunk arra, hogy beavatkozzunk. Ha mégis szükségünk van arra, hogy egy rekord azonosítóját magunk határozzuk meg, vagy módosítsunk rajta, akkor erre használhatjuk a
SET IDENTITY_INSERT ON
kapcsolót. Segítségével kikapcsolhatjuk az azonosító tulajdonság figyelembe vételét. Mellékelt példánkban egy termékeket tartalmazó táblát hozunk létre, amelybe sorokat veszünk fel, majd egy közbülső sort törlünk. Megpróbáljuk először pótolni a foghíjas azonosítót, de mivel nem engedi a szerver, ezért ki kell kapcsolnunk az azonosító tulajdonság kezelését és ezután már sikeres lesz az INSERT.
IDENT_SEED, IDENT_INCREMENT függvények
Ez a két függvény egy tábla vagy nézetnév paraméterrel rendelkezik és visszaadja az adott, pl. tábla azonosítójának kezdő értékét, vagy növekedési értékét – az adott függvénytől függően. Mellékelt példánkban a pubs adatbázis valamennyi tábláját kilistázzuk, amelyeknek azonosító mezőjük van, és megjelenítjük a megfelelő paramétereket.
@@IDENTITY
Visszaadja az azonosító értéket. INSERT, vagy SELECT INTO utasítással együtt használva segítségével megtudhatjuk, hogy milyen azonosító értéket kapott az új rekord.
INSERT INTO munka (munka_leiras,min_fizetes,max_fizetes)
VALUES ('Kapcsolattartó',80000,125000)
SELECT @@IDENTITY AS 'Identity'
Az itt látható módon adja vissza a munkákat tartalmazó tábla a legfrissebb rekord azonosítóját.
SCOPE_IDENTITY()
Ennek az SQL változónak a működése hasonló a @@IDENTITY-hez, csupán abban különbözik, hogy a SCOPE_IDENTITY a saját "hatásköréhez" tartozó azonosítót adja vissza.
Például két táblánk van, T1 és T2 és a T1-en egy INSERT trigger van beállítva. Amikor egy sor beszúrásra kerül a T1-be, a trigger feléled, és beszúr egy rekordot a T2-be. E szerint a forgatókönyv szerint két hatáskör van: a T1-es INSERT és a T2-es INSERT, a trigger eredménye.
Feltéve, ha mindkét táblának van IDENTITY oszlopa, a @@IDENTITY és a SCOPE_IDENTITY más értéket fog visszaadni a kezdeményezett T1-es INSERT után.
A @@IDENTITY az utolsó IDENTITY oszlop értéket adja vissza, ami beszúrásra került bármely hatáskörben, az aktuális viszonyban, ami a T2 megfelelő értéke lesz. A SCOPE_IDENTITY pedig a T1 azonosítóját fogja visszaadni, mivel neki csak arra terjed ki a hatásköre.
IDENTITY függvény
A SELECT INTO utasításban használatos az IDENTITY nevű függvény, ami a megadott paraméterei (adattípus, kezdőérték, növekmény) alapján generál egy azonosító értéket. Utána az AS kulcsszó segítségével tudunk oszlopnevet definiálni az újonnan létrejött azonosító oszlopnak. Ezt a funkciót akkor használhatjuk, amikor egy lekérdezés adataiból akarunk új táblát létrehozni, és azt szeretnénk, hogy ez az új tábla rendelkezzen azonosító mezővel is.
SELECT alkalmazott_id AS alkalmazott _num, 
vezeteknev AS vezetek, 
keresztnev AS kereszt, 
IDENTITY(smallint, 100, 1) AS munka_num, 
munka_szint
INTO alkalmazottak
FROM alkalmazott
A példa illusztrálja az IDENTITY függvény használatát.

Cikksorozat

#IDKategóriaCikk címeSorozat
2591WindowsTippek és trükkök - RAS - Modem csengetési szám állítása1. rész
2622WindowsTippek és trükkök - Program futtatása más felhasználóként2. rész
2640WindowsA Windows ikonméretének megváltoztatása és Windows 2000 Asztaltémák3. rész
2657WindowsTippek és trükkök - Internet Explorer4. rész
2667WindowsTippek és trükkök5. rész
2684WindowsAlapértelmezések állítása, telepítési fájlok helye, intéző nézetek6. rész
2696WindowsBiztonsági trükkök7. rész
2702WindowsWindows XP trükkök8. rész
2729WindowsWindows 2000 és XP tippek, trükkök9. rész
2757WindowsRegistry trükkök10. rész
2784WindowsTippek, trükkök11. rész
2829WindowsTippek, trükkök12. rész
2889WindowsWindows XP tippek13. rész
2909WindowsTippek Windows XP-hez14. rész
2919WindowsWindows tippek15. rész
2924WindowsWindows tippek16. rész
2963WindowsWindows tippek17. rész
2973WindowsWindows Tippek18. rész
2981WindowsWindows tippek19. rész
2990WindowsTippek-trükkök20. rész
3027WindowsIIS tippek21. rész
3034WindowsWindows XP tippek-trükkök22. rész
3088WindowsWindows 2000/XP tippek, trükkök23. rész
3133WindowsWindows XP tippcsokor24. rész
3140WindowsWindows XP tippek, trükkök25. rész
3152WindowsXP és IIS tippek - trükkök26. rész
3158WindowsWindows XP tippek, trükkök27. rész
3168WindowsTippek, trükkök28. rész
3170WindowsRegistry trükkök29. rész
3179WindowsTippek, trükkök30. rész
3197WindowsWindows XP tippek, trükkök31. rész
3205WindowsTippek, trükkök32. rész
3214WindowsTippek, trükkök33. rész
3223WindowsTippek, trükkök34. rész
3233WindowsTippek, trükkök35. rész
3271WindowsTippek, trükkök36. rész
3307WindowsTippek, trükkök37. rész
3370WindowsTippek, trükkök38. rész
3399WindowsTippek, trükkök39. rész
3510WindowsTippek, trükkök40. rész
3611WindowsHardverrel kapcsolatos tippek, trükkök41. rész
3668WindowsRegistry trükkök42. rész
3711WindowsTippek, trükkök43. rész
3771WindowsTippek, trükkök44. rész
3801WindowsTippek, trükkök45. rész
3831WindowsTippek, trükkök46. rész
3891WindowsTippek, trükkök47. rész
3921WindowsTippek, trükkök48. rész
3981WindowsTippek, trükkök49. rész
4041WindowsTippek, trükkök50. rész
4071WindowsTippek, trükkök51. rész
4151WindowsTippek, trükkök52. rész
4171C#Tippek, trükkök53. rész
4211WindowsTippek, trükkök54. rész
4251WindowsTippek, trükkök55. rész
4281WindowsTippek, trükkök56. rész
3589DelphiTippek, trükkök57. rész
3718DelphiTippek, trükkök58. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2003 évkönyv 360. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |