Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12402|Válasz: 3

[Forrás] Frissítse az önnövekedő azonosítóoszlop működési módját az SQL Server adatbázisban

[Linket másol]
Közzétéve 2018. 08. 23. 12:20:44 | | | |
A napi SQL Server fejlesztésben az Identity típus identitásoszlopát gyakran használják egy táblastruktúra önnövő számaként. Például cikkszám, lemez sorozatszám stb. Az önnövekvő azonosított oszlopokra való hivatkozások nagyban megkönnyítik az adatbázis-programok fejlesztését, de néha ez a makacs mezőtípus is okozhat némi problémát.

1. Módosítsa az azonosító oszlop mezőértékeit:

Néha, egy függvény megvalósításához szükséges, hogy módosítani kell egy önnövekedő Identity típusú mező értékét, de ez a művelet alapértelmezés szerint nem engedélyezett az identitásoszlop típusa miatt. Például, ha 5 adatdarabot adnak hozzá normálisan az adatbázisba, és 2 törlődik ekkor, akkor ha az adatokat újra hozzáadják, az önnövekedő azonosító oszlop automatikusan 6-os értéket kap, de ha 3-at akarsz adni adatbeillesztéskor, ez alapértelmezés szerint nem engedélyezett. Ha módosítani akarod ennek a mezőnek az értékét, teljesen szabályozhatod az azonosító mező értékének behelyezését, még mindig vannak metódusok, haha.

ÁLLÍTSD IDENTITY_INSERT /[TABLE/] [BEVETÉS| OFF]
A fenti állítás segítségével könnyen szabályozhatod, hogy egy tábla önnövekedő azonosító oszlopa automatikusan növekedhet-e, vagyis jogosult-e manuálisan megadni az azonosító oszlopmező értékét egy rekord beillesztésekor. Ha az on-val van megadva, beillesztéskor megadhatod az azonosító oszlopmező értékét, ami nem növeli automatikusan a kijelölt értéket. Természetesen, ha elhasználod, ezt az utasítást kell kikapcsolnod az alapértelmezett állapotra, különben a mező nem növeli automatikusan a megadott értéket, amikor legközelebb adatot adsz be.

2. Állítsd vissza az azonosító oszlop mezőértékét:

Amikor az adatrekord egy részét töröljük, és az új adatrekordot később hozzáadják, az azonosító oszlop értéke hosszú üres időszakot kap, ami nagyon kellemetlennek tűnik. Még ha törlöd is az összes rekordot a táblázatból, az identitásoszlop értéke automatikusan és végtelenül növekedni fog, nem pedig a nulláról nő. Az önnövő mező magértéke a következő állítással visszaállítható:

DBCC CHECKIDENT(TABLE, [RESEED| NORESEED], [1])
A fenti állítás arra kényszeríti, hogy a megadott tábla magértékét 1-re állítsák vissza. Ha viszont nem akarod a magot 1-re állítani, a harmadik paramétert lecserélheted a használni kívánt magértékre. Ha a jelenlegi magot akarod tudni, ahelyett, hogy a azonosított magot állítanád vissza, akkor a NORESSEED-et kell használnod a harmadik paraméter beállítása helyett.




Előző:SQL Server 2012 automatikus növekedési oszlopok értékugrás problémákkal
Következő:A Windows nem indítja el a Redis szolgáltatást, 1067-es hiba: A folyamat váratlanul leáll.
 Háziúr| Közzétéve 2018. 08. 23. 12:57:08 |
1. Amikor a táblázat összes adatát töröljük, automatikusan nullára nőnek. ( Táblázatnév rövidítése )

2. Ne töröld a táblázat adatait, hanem közvetlenül állítsd vissza az automatikus növekedés értékét. ( DBCC CHECKIDENT('TableName', ÚJRAVETÉS, 0)
 Háziúr| Közzétéve 2018. 08. 23. 13:01:32 |
 Háziúr| Közzétéve 2019. 02. 13. 9:59:15 |
Tekintse meg az önnövekedő oszlopok aktuális értékeit egy táblázatban:
    DBCC CHECKIDENT (TableName)

Módosítsuk egy önnövekedő oszlop aktuális értékét egy táblázatban:
    DBCC CHECKIDENT (TableName, RESEED, érték)
    A RESSEED nem oszlopnév, rögzített módon írják.


Például, ha a Division táblázat önnövelő oszlopának aktuális értékét 30-ra akarom változtatni, a következő parancsot használhatom
DBCC CHECKIDENT (Divízió, ÚJRAKIEMELÉS, 30)
Ezután használd
DBCC CHECKIDENT (Divízió)
Láthatod, hogy a jelenlegi érték 30
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com