MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 12.11.2004, 16:53   #1
PC-Supporter
MOF User
MOF User
Standard SQL-Syntax - Mehrere Tabellen löschen

Hallo Forum,

gibts eigentlich eine Möglichkeit, per einfachem Script alle Tabellen einer Datenbank zu löschen, deren bestimmten Kriterien entsprechen? Also in meinem Fall lösche alle Tabellen deren Name "T" + ### (also 3 Zahlen) ist?

Ich hab mal ein bischen gegoogelt und bin auf die "sp_msforeachtable"-proc gestossen. Kann die dabei vielleicht helfen?
Grüße
Maik
(SQL server 2000 SP3 /MSDE Sp3)

__________________

WXP Pro SP3, Office 2k7, SQL Server 2005
PC-Supporter ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.11.2004, 16:48   #2
spinneken
MOF User
MOF User
Standard

hi maik,

am einfachsten ist, du schreibst dir ein simples sql-skript, das erst alle tabellen-namen mit den genannten kriterien zurückgibt (tabelle: sysobjects, xtype: 'u' für user-tabelle, usw.). dann durchlaufen einer schleife, in der du dein t-sql zum tabellen-löschen bastelst (willst du nur die inhalte - also alle datensätze in den tabellen - löschen oder die komplette tabelle?)

z.b.

Code:

create procedure spDeleteFromTTables
as
declare @sql varchar(500)
declare @tblName varchar(200)


declare cur cursor for
select [name] from sysobjects where xtype = 'u' and [name] like 't%'

open cur

fetch next from cur into @tblName
while @@fetch_status = 0
begin
	-- erzeugen des t-sql: datensätze löschen
	set @sql = 'delete from ' + @tblName
	-- erzeugen des t-sql: tabelle löschen (hier auskommentiert)
	-- set @sql = 'drop table ' + @tblName
	exec(@sql)
	fetch next from cur into @tblName
end

close cur
deallocate cur
lg spinneken
spinneken ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.11.2004, 10:06   #3
PC-Supporter
Threadstarter Threadstarter
MOF User
MOF User
Standard

Das ist doch was!
Vielen Dank, hast mir sehr geholfen. Ich hab noch ein bischen dran rumgebastelt und noch ein paar Kommentare für meine DAUs eingebaut (Unter den Blinden ist der Einäugige...)

Hier der Code:
Code:

Create procedure spDeleteFromTTables
as
declare @sql varchar(500)
declare @tblName varchar(200)


declare cur cursor for
-- Wenn es sich um Tabellen handelt, dann xtype='u', bei Views xtype='v'
-- Der Unterstrich bedeutet beliebiges Zeichen, hier also: Name fängt mit 't' an und hat dann noch 11 Zeichen 
select [name] from sysobjects where xtype = 'V' and [name] like 't___________'

open cur

fetch next from cur into @tblName
while @@fetch_status = 0
begin
-- Hier kann gewählt werden zwischen (dazu '-- ' vor entsprechendem 'set @sql ...' entfernen):

	-- alle Datensätze löschen aus diesen Tabellen (oder Views) (hier auskommentiert)
	-- set @sql = 'delete from ' + @tblName
	
	-- diese Tabellen löschen (hier auskommentiert)
	-- set @sql = 'drop Table ' + @tblName
	
	-- diese Views löschen 
	set @sql = 'drop View ' + @tblName

	exec(@sql)
	fetch next from cur into @tblName
end

close cur
deallocate cur

-- nach diesem Script muß die Prozedur ausgeführt werden mit  
-- execute spDeleteFromTTables
Danke nochmal. Thema durch.

Gruß aus Hannover
Maik

__________________

WXP Pro SP3, Office 2k7, SQL Server 2005
PC-Supporter ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.11.2004, 10:09   #4
spinneken
MOF User
MOF User
Standard

hi maik,

bitte gerne
pass bloss auf, dass du net im endeffekt mehr kommentar als auszuführenden sql-code hast

lg aus graz,
spinneken
spinneken ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.