Un sostituto del Delete in sql

martedì 04 dicembre 2007 - 15.03

trinity Profilo | Guru

Salve ragazzi,
se utilizzo il comando Delete su una tabella Sql, rimuovo tutti i record ma non resetto il contatore autoincrementato dell'indice.
Esiste un altro comando che mi pulisce la tabella, senza eliminarla, e mi resetta il contatore?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>Salve ragazzi,
>se utilizzo il comando Delete su una tabella Sql, rimuovo tutti
>i record ma non resetto il contatore autoincrementato dell'indice.
>Esiste un altro comando che mi pulisce la tabella, senza eliminarla,
>e mi resetta il contatore?
TRUNCATE TABLE <nometabella>

la reference qui:
http://technet.microsoft.com/it-it/library/ms177570.aspx

Attenzione perchè la truncate non scrive sul log come la delete.
Delete scrive riga per riga su log, truncate solo la deallocazione delle pagine.
Più che altro controlla se ci sono foreign key (se la tabella è referenziata). In quel caso la truncate non è consentita e SQL Server ti solleva l'eccezione.
La truncate non è consentita anche se l'oggetto è pubblicato in replica transazionale.
Ciao!


>
>Ciao
>Cirillo Fabio
>www.wondernet.biz
>fabio@wondernet.biz
>http://blogs.dotnethell.it/fabiocirillo/
>http://wnetsoftware.blogspot.com

Alx81 =)

http://blogs.dotnethell.it/suxstellino

trinity Profilo | Guru

E' l'unica soluzione?
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>E' l'unica soluzione?
E' una delle più veloci quando è possibile usarla .
Altra alternativa è fare la DELETE e poi utilizzare il comando DBCC CHECKINDENT, che ti permette, tra le altre cose, di resettare il valore della tua colonna Indetity:

DBCC CHECKIDENT('tabella', RESEED, 0) -- parte da 1

la reference MSDN qui:
http://technet.microsoft.com/it-it/library/ms176057.aspx

Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

trinity Profilo | Guru

Grazie!
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>Grazie!
di nulla, se ritieniche la risposta ti abbia aiutato ti chiedo cortesemente di accettare la risposta così chiudiamo il thread.
Ciao!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5