Csonkolása asztal (Transact-SQL)

Összehasonlítva a használati DELETE TRUNCATE TABLE utasítás a következő előnyökkel jár:

Használjon kisebb mennyiségű tranzakciós napló.

DELETE utasítás töröl egy sort, és naplózza a tranzakciót rögzít minden egyes törölt sor. TRUNCATE TABLE utasítás törli az adatokat, felszabadítva az adatok oldalak tárolására használt táblázatok az adatok, valamint a tranzakciós napló bejegyzéseket csak a kiadás az adatok oldalakat.

Rendszerint kevesebb zárak.

Ha a DELETE utasítás végrehajtásra kerül blokkoló vonalak eltávolítására minden sor az asztal le van zárva. TRUNCATE TABLE utasítás mindig lezárja a táblázat és az oldal, de nem minden sorban.

A táblázat nulla az oldalak számát, kivétel nélkül.

Elvégzése után DELETE utasítás a táblázatban lehet még egy üres oldalt. Például, hogy kiadja az üres oldalakat a kupac, szükség van legalább egy exkluzív táblazárolást (LCK_M_X). Ha a törlés nem használ táblazárolást, az asztal (a kupac) fog tartalmazni sok üres oldalakat. Az indexek eltávolítása után lehet egy üres oldal, bár ezek az oldalak gyorsan megszabadult háttér törlési folyamat.

TRUNCATE TABLE utasítás eltávolítja az összes sort a táblázat, de a tábla szerkezetét és annak oszlopok, megszorítások, és az index m. P. megmarad. Hogy nem csak az adatokat az asztalra, de annak meghatározását használja DROP TABLE utasítás.

Ha a táblázat tartalmazza az azonosító oszlopban, az oszlop számláló visszaáll egy kezdeti értéket meghatároztuk, hogy oszlopra. Ha a kezdeti érték nincs megadva, akkor az alapértelmezett érték 1. Annak érdekében, hogy a személyazonosságát oszlopban a DELETE utasítás.

korlátozások

Instruction TRUNCATE TABLE nem használható asztal, amelyre a következő feltételek teljesülnek:

Az asztalon hivatkozott idegen kulcs. (Táblázat, amely az idegen kulcs, amely utal a maga tudja vágni).

A táblázat része a indexelt nézet.

Táblázatokból minden ilyen jellemzőket kell használni utasításokat DELETE.

TRUNCATE TABLE utasítás nem lehet aktiválni a ravaszt, mert nem log-eltávolítását az egyes vonalak. További információkat. Lásd CREATE TRIGGER (-SQL).

Csonkolása a nagy táblák

A Microsoft SQL Server lehet törölni vagy levágja táblázatokat, amelyek több mint 128 mértékben kapaszkodás nélkül egyidejű zár az összes mértékben ártalmatlanításra szánt. További információért lásd. Csepegtető és újraépítése Large Objects.

A szükséges minimális felbontás ALTER tábla_neve. Az alapértelmezett engedélyei TRUNCATE TABLE utasítás vonatkozik azokra, a tulajdonos, tagjai a rendszergazda rögzített kiszolgáló szerepét, és a rögzített adatbázis szerepe db_owner és db_ddladmin. Ezek a jogosultságok nem kerülnek át. Mindazonáltal TRUNCATE TABLE utasításokat lehet építeni egy modult, például egy tárolt eljárást, és megadja a megfelelő engedélyeket az e modulra Proposition hajtják végre az. További információért lásd., Lásd: Az hajtják végre az állítás, hogy egyéni engedélyt készletek.

Kapcsolódó cikkek