Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Brisanje svih tabela

[es] :: MS SQL :: Brisanje svih tabela

[ Pregleda: 2268 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

HermanBG
Programer

Član broj: 266107
Poruke: 3
*.mediaworksit.net.



Profil

icon Brisanje svih tabela13.08.2010. u 11:53 - pre 166 meseci
Cao,

Hteo bih da jednom sql komandom ili upitom obrisem sve tabele u bazi, ali da ne obrisem bazu jer zelim da sacuvam sve stored procedures, sve view-ove i sl.

Dakle nesto kao DROPP ALL TABLES (sto ne postoji)

Imate li ideju?
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Brisanje svih tabela13.08.2010. u 12:52 - pre 166 meseci
nema takve komande, moras da enumerirses sve objekte tipa tabela i da ih dropujes ednu po jednu u petlji
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Vic
Error974
BI&SE
Beograd

Član broj: 16118
Poruke: 396
*.imlek.rs.



+49 Profil

icon Re: Brisanje svih tabela13.08.2010. u 12:54 - pre 166 meseci
Ili drop database.
ERROR974
 
Odgovor na temu

AMD guy
Miroslav
.NET developer

Član broj: 128930
Poruke: 1007

Sajt: www.its.edu.rs


+38 Profil

icon Re: Brisanje svih tabela13.08.2010. u 13:02 - pre 166 meseci
Probaj ovo

Code (sql):
DECLARE
@SQL VARCHAR(4000),
@int_counter INT,
@int_max INT

DECLARE @TABLES TABLE(
ident INT IDENTITY(1,1) PRIMARY KEY,
TABLE VARCHAR(256))

INSERT @TABLES(TABLE)
SELECT name FROM sysobjects WHERE xtype = 'U'

SELECT
@int_counter = 1,
@int_max = (SELECT MAX(ident) FROM @TABLES))

WHILE @int_counter <= @int_max
BEGIN

SELECT @SQL = 'DELETE ' + TABLE
FROM @TABLES WHERE ident = @int_counter

SELECT @int_counter = @int_counter + 1
END
 


Ovo ce raditi samo ako nemas foreign keys i ne zezaj se sa sistemskim bazama(sysobjects), opasno je.
P.S.
Ne odgovaram za posledice ovog skripta :)

ovo sam nasao na dbforumu.

http://i.imgur.com/V3feW.jpg
http://on.wsj.com/H9yjz6 -- India Graduates Millions, but Too Few Are Fit to Hire
 
Odgovor na temu

Fedya
Fedor Hajdu
Solution Architect
Emaratech
Dubai, UAE

Član broj: 28246
Poruke: 790
82.117.202.*

Jabber: fedya@elitesecurity.org
Sajt: devtechgroup.com


+34 Profil

icon Re: Brisanje svih tabela13.08.2010. u 13:46 - pre 166 meseci
Citat:
HermanBG: Hteo bih da jednom sql komandom ili upitom obrisem sve tabele u bazi, ali da ne obrisem bazu jer zelim da sacuvam sve stored procedures, sve view-ove i sl.


Ono sto bih ti ja preporucio je da scriptujes bazu (ako koristis SSMS kliknes desnim na bazu Tasks -> Generate Scripts...) koja ti uvek moze biti korisna ako hoces da pocistis bazu. Nakon toga drop-ujes bazu i rekreiras sve iz scripta.

Kod koji ti je AMD dao ce raditi samo ako nemas nikakvih constraint-a na tabelama, nemas triggera i sl. Ukoliko ih imas oni ce biti obrisani zajedno sa tabelama (pretpostavljam da to ne zelis). Takodje imaju vidu da ce ti taj drop napuniti transaction log. U slucaju da imas spoljnih kljuceva kod uopste nece raditi.
Every hamster has his day.
 
Odgovor na temu

[es] :: MS SQL :: Brisanje svih tabela

[ Pregleda: 2268 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.