Suotare di tutti i dati un database

venerdì 14 settembre 2007 - 08.51

_J_ Profilo | Senior Member

ciao a tutti!

vorrei fare un po' di pulizia nel database che ho creato per il mio progetto... uso sql server nel vs2005...
vorrei sapere se esiste un modo per svuotare il db di tutti i dati senza dover esportare gli script di creazione e reimportarli.

grazie a chi risponderà!
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

alx_81 Profilo | Guru

>ciao a tutti!
>
>vorrei fare un po' di pulizia nel database che ho creato per
>il mio progetto... uso sql server nel vs2005...
>vorrei sapere se esiste un modo per svuotare il db di tutti i
>dati senza dover esportare gli script di creazione e reimportarli.
Certo che esiste..
hai varie possibilità cancellando tabella per tabella.
leggiti questi link:

TRUNCATE TABLE
http://technet.microsoft.com/it-it/library/ms177570.aspx

DELETE
http://technet.microsoft.com/it-it/library/ms189835.aspx

Questi comandi intervengono su di una tabella, quindi dovrai scrivere una stored procedure che ti faccia le cancellazioni di tutti i dati di tutte le tabelle.
Attenzione a cogliere le differenze fra le due. Tutto sui link

>grazie a chi risponderà
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

_J_ Profilo | Senior Member

sì, conoscevo il truncate table ma non ero sicuro che era supportato da sql server...

ho provato ad usarlo sulle tabelle che dovevo cancellare (non tutte, ho infatti lasciato quelle di decodifica, che raccolgono tutte le professioni, le città, le province ecc...)
ma succede una cosa strana: a runtime mi fa vedere ancora tutti i dati, come se non li avessi mai cancellati, eppure controllando le tabelle del db esse risultano vuote....
che succede?

_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

alx_81 Profilo | Guru

>ho provato ad usarlo sulle tabelle che dovevo cancellare (non tutte, ho infatti lasciato quelle di decodifica, che raccolgono
>tutte le professioni, le città, le province ecc...)
>ma succede una cosa strana: a runtime mi fa vedere ancora tutti
>i dati, come se non li avessi mai cancellati, eppure controllando
>le tabelle del db esse risultano vuote....
>che succede?
che il problema è un altro..
se a runtime ci sono dati che vai a leggere da db, le tabelle che vai a leggere sono piene. Oppure, se leggi da una query che fa left join con quelle che hai cancellato, i dati li hai lo stesso (se alcune tabelle sono popolate)..
Ma ti assicuro che se la truncate è andata, non ti trovi più nulla..
Non è che la tua applicazione punta ad un database di test diverso da quello su cui hai cancellato?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

_J_ Profilo | Senior Member

>Non è che la tua applicazione punta ad un database di test diverso
>da quello su cui hai cancellato?

lo avevo pensato e sto appunto controllando.... ma il db è unico, non ho copie
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

lbenaglia Profilo | Guru

>>Non è che la tua applicazione punta ad un database di test diverso
>>da quello su cui hai cancellato?
>
>lo avevo pensato e sto appunto controllando.... ma il db è unico,
>non ho copie
Allora significa che le TRUNCATE TABLE o non sono andate a buon fine oppure le hai eseguite sulle tabelle sbagliate

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

_J_ Profilo | Senior Member

>Allora significa che le TRUNCATE TABLE o non sono andate a buon
>fine oppure le hai eseguite sulle tabelle sbagliate

non è possibile... perchè nel db le tabelle hanno nomi esplicativi (cittadino, tabella_decod_vie, ecc..)
nella truncate non ho incluso le tabelle di decodifica, quindi la scelta delle tabelle è giusta...
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

lbenaglia Profilo | Guru

>non è possibile... perchè nel db le tabelle hanno nomi esplicativi
>(cittadino, tabella_decod_vie, ecc..)
>nella truncate non ho incluso le tabelle di decodifica, quindi
>la scelta delle tabelle è giusta...
Beh, ascolta, se i dati li vedi ancora un motivo ci sarà, no?
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

_J_ Profilo | Senior Member

indubbiamente... è solo che vorrei capire da dove li prende
_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."

alx_81 Profilo | Guru

>indubbiamente... è solo che vorrei capire da dove li prende
Come ti dico spesso, armati di debug e guarda bene tutto passo passo.. vedrai che lo scovi!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

_J_ Profilo | Senior Member

ho risolto...
essendo che la sp non presentava errori, allora ho ripensato al consiglio dell'ottimo alx81 ed ho ricontrollato la locazione del database, e per sicurezza ho impostato |DataDirectory| nel web.config... (prima avevo il percorso assoluto...)
ora in effetti non mi fa vedere più dati come deve essere...

grazie ad entrambi per l'aiuto!

_J_

"Chi fa domande rischia di sembrare stupido,
chi non ne fa rischia di restare stupido..."

"Conosco me stesso? No, non parlo con gli estranei..."
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5