Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer toutes les tables d'une base SQL Server 2000 ?

3 réponses
Avatar
Thierry Frache [MVP]
Bonjour,

autant je me débrouille avec les systèmes Windows 2000/2003, autant je ne
connais que très très peu de choses sur SQL Server 2000. Dans l'immédiat, je
souhaiterais supprimer toutes les tables d'une base SQL sans supprimer et
recréer la base (je n'ai pas les droits pour réaliser la
suppression/création de la base). J'ai regardé du côté du menu Tools,
Generate SQL Script en choisissant de faire un DROP sur toutes les tables
mais malgré que le script s'exécute sans erreur, les tables subsistent
toujours!

Merci d'avance de votre aide!

Thierry

3 réponses

Avatar
Fred BROUARD
Il faut le faire dans l'ordre inverse des imbrications d'intégrité
référentielles.

Tu trouvera la liste de ces dernières dans les tabes d'information de schema
SELECT * FROM INFORMATION_SCHEMA. ???

A +

Thierry Frache [MVP] a écrit:
Bonjour,

autant je me débrouille avec les systèmes Windows 2000/2003, autant je ne
connais que très très peu de choses sur SQL Server 2000. Dans l'immédiat, je
souhaiterais supprimer toutes les tables d'une base SQL sans supprimer et
recréer la base (je n'ai pas les droits pour réaliser la
suppression/création de la base). J'ai regardé du côté du menu Tools,
Generate SQL Script en choisissant de faire un DROP sur toutes les tables
mais malgré que le script s'exécute sans erreur, les tables subsistent
toujours!

Merci d'avance de votre aide!

Thierry





--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************
Avatar
TINANT Hervé \(alias CrazyHT\)
Regarde le code suivant. Il ne gere que les objet de base mais en remplacant
les print par des sp_executesql ca devrait le faire. Pour les autres objets
regarde la doc. La c'est juste un point de depart.

P.S. : Je n'ai pas tester le codes avec l'appel a sp_executesql mais ca doit
tourner.


use Northwind

Declare @constraint sysname
Declare @contcat sysname
Declare curcont cursor for SELECT TABLE_NAME,CONSTRAINT_NAME FROM
INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
open curcont
fetch curcont into @contcat ,@constraint
while @@fetch_status >= 0
Begin
PRINT 'ALTER TABLE ' + @contcat + ' DROP CONSTRAINT ' + @constraint
fetch curcont into @contcat ,@constraint
End
CLOSE curcont
Deallocate curcont

Declare @TableName sysname
Declare @TableType varchar(10)
Declare cur cursor for SELECT TABLE_NAME, TABLE_TYPE FROM
INFORMATION_SCHEMA.TABLES WHERE LEFT(TABLE_NAME,3)<>'sys'
open cur
fetch cur into @TableName,@TableType
while @@fetch_status >= 0
Begin
IF (@TableType='VIEW')
PRINT 'DROP VIEW ' + @TableName
ELSE
PRINT 'DROP TABLE ' + @TableName
fetch cur into @TableName,@TableType
END
CLOSE cur
DEALLOCATE cur


Crazyht
MVP Visual C#.NET
http://www.csharpfr.com

"Fred BROUARD" a écrit dans le message de
news:
Il faut le faire dans l'ordre inverse des imbrications d'intégrité
référentielles.

Tu trouvera la liste de ces dernières dans les tabes d'information de


schema
SELECT * FROM INFORMATION_SCHEMA. ???

A +

Thierry Frache [MVP] a écrit:
> Bonjour,
>
> autant je me débrouille avec les systèmes Windows 2000/2003, autant je


ne
> connais que très très peu de choses sur SQL Server 2000. Dans


l'immédiat, je
> souhaiterais supprimer toutes les tables d'une base SQL sans supprimer


et
> recréer la base (je n'ai pas les droits pour réaliser la
> suppression/création de la base). J'ai regardé du côté du menu Tools,
> Generate SQL Script en choisissant de faire un DROP sur toutes les


tables
> mais malgré que le script s'exécute sans erreur, les tables subsistent
> toujours!
>
> Merci d'avance de votre aide!
>
> Thierry
>
>

--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
Thierry Frache [MVP]
Merci ca marche au poil! Merci également à toi Fred.

Thierry

"TINANT Hervé (alias CrazyHT)" <crazyht> a écrit dans le message de news:

Regarde le code suivant. Il ne gere que les objet de base mais en


remplacant
les print par des sp_executesql ca devrait le faire. Pour les autres


objets
regarde la doc. La c'est juste un point de depart.

P.S. : Je n'ai pas tester le codes avec l'appel a sp_executesql mais ca


doit
tourner.


use Northwind

Declare @constraint sysname
Declare @contcat sysname
Declare curcont cursor for SELECT TABLE_NAME,CONSTRAINT_NAME FROM
INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
open curcont
fetch curcont into @contcat ,@constraint
while @@fetch_status >= 0
Begin
PRINT 'ALTER TABLE ' + @contcat + ' DROP CONSTRAINT ' + @constraint
fetch curcont into @contcat ,@constraint
End
CLOSE curcont
Deallocate curcont

Declare @TableName sysname
Declare @TableType varchar(10)
Declare cur cursor for SELECT TABLE_NAME, TABLE_TYPE FROM
INFORMATION_SCHEMA.TABLES WHERE LEFT(TABLE_NAME,3)<>'sys'
open cur
fetch cur into @TableName,@TableType
while @@fetch_status >= 0
Begin
IF (@TableType='VIEW')
PRINT 'DROP VIEW ' + @TableName
ELSE
PRINT 'DROP TABLE ' + @TableName
fetch cur into @TableName,@TableType
END
CLOSE cur
DEALLOCATE cur


Crazyht
MVP Visual C#.NET
http://www.csharpfr.com

"Fred BROUARD" a écrit dans le message de
news:
> Il faut le faire dans l'ordre inverse des imbrications d'intégrité
> référentielles.
>
> Tu trouvera la liste de ces dernières dans les tabes d'information de
schema
> SELECT * FROM INFORMATION_SCHEMA. ???
>
> A +
>
> Thierry Frache [MVP] a écrit:
> > Bonjour,
> >
> > autant je me débrouille avec les systèmes Windows 2000/2003, autant je
ne
> > connais que très très peu de choses sur SQL Server 2000. Dans
l'immédiat, je
> > souhaiterais supprimer toutes les tables d'une base SQL sans supprimer
et
> > recréer la base (je n'ai pas les droits pour réaliser la
> > suppression/création de la base). J'ai regardé du côté du menu Tools,
> > Generate SQL Script en choisissant de faire un DROP sur toutes les
tables
> > mais malgré que le script s'exécute sans erreur, les tables subsistent
> > toujours!
> >
> > Merci d'avance de votre aide!
> >
> > Thierry
> >
> >
>
> --
> Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
> Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> ****************** mailto: ******************
>