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

drop table @TABLE_NAME

3 réponses
Avatar
Barde
Bonjour,
je lis le contenu d'une colonne =E0 l'aide d'un curseur=20
(FETCH NEXT INTO @titi)

Je d=E9sir supprimer les tables d'apr=E8s une variable=20
@TABLE_NAME mais je n'y arrive pas...

Avez-vous une solution...

salutation

3 réponses

Avatar
jgabillaud
Il passer par l'instruction EXECUTE et fournir le nom de la table à
supprimer en paramètre à cette méthode

Exemple extrait de la documentation en ligne de SQL Server ( mot clé EXECUTE)

DECLARE tables_cursor CURSOR
FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables_cursor
DECLARE @tablename sysname
FETCH NEXT FROM tables_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
/* A @@FETCH_STATUS of -2 means that the row has been deleted.
There is no need to test for this because this loop drops all
user-defined tables. */.
EXEC ('DROP TABLE ' + @tablename)
FETCH NEXT FROM tables_cursor INTO @tablename
END
PRINT 'All user-defined tables have been dropped from the database.'
DEALLOCATE tables_cursor





"Barde" a écrit :

Bonjour,
je lis le contenu d'une colonne à l'aide d'un curseur
(FETCH NEXT INTO @titi)

Je désir supprimer les tables d'après une variable
@TABLE_NAME mais je n'y arrive pas...

Avez-vous une solution...

salutation



Avatar
Fred BROUARD
quelques remarques :

jgabillaud a écrit:
Il passer par l'instruction EXECUTE et fournir le nom de la table à
supprimer en paramètre à cette méthode



dans ce cas il ne s'agit pas de paramètre car c'est du SQL dynamique donc de la
chaine de caractères ! Et dans ce cas le paramétrage n'est pas possible...

Autrement dit on construit dymamiquement une chaine de caractères en en
assemblant les différents bouts à la manière d'un mécano afin de construire un
texte qui constitue un ordre SQL. Car finalement un ordre SQL comme SELECT n'est
tout simplement qu'une chaine de caractères.

Exemple :

DECLATE @SQL VARCHAR(8000)

SET @SQL = 'DROP TABLE ' + @MaVar

EXEC (@SQL)

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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
************************ www.datasapiens.com *************************


Exemple extrait de la documentation en ligne de SQL Server ( mot clé EXECUTE)

DECLARE tables_cursor CURSOR
FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables_cursor
DECLARE @tablename sysname
FETCH NEXT FROM tables_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
/* A @@FETCH_STATUS of -2 means that the row has been deleted.
There is no need to test for this because this loop drops all
user-defined tables. */.
EXEC ('DROP TABLE ' + @tablename)
FETCH NEXT FROM tables_cursor INTO @tablename
END
PRINT 'All user-defined tables have been dropped from the database.'
DEALLOCATE tables_cursor





"Barde" a écrit :


Bonjour,
je lis le contenu d'une colonne à l'aide d'un curseur
(FETCH NEXT INTO @titi)

Je désir supprimer les tables d'après une variable
@TABLE_NAME mais je n'y arrive pas...

Avez-vous une solution...

salutation





Avatar
Barde
MERCI !!!

-----Message d'origine-----
quelques remarques :

jgabillaud a écrit:
Il passer par l'instruction EXECUTE et fournir le nom




de la table Ã
supprimer en paramètre à cette méthode



dans ce cas il ne s'agit pas de paramètre car c'est du


SQL dynamique donc de la
chaine de caractères ! Et dans ce cas le paramétrage


n'est pas possible...

Autrement dit on construit dymamiquement une chaine de


caractères en en
assemblant les différents bouts à la manière d'un


mécano afin de construire un
texte qui constitue un ordre SQL. Car finalement un ordre


SQL comme SELECT n'est
tout simplement qu'une chaine de caractères.

Exemple :

DECLATE @SQL VARCHAR(8000)

SET @SQL = 'DROP TABLE ' + @MaVar

EXEC (@SQL)

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL /


spécialiste 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
************************ www.datasapiens.com


*************************


Exemple extrait de la documentation en ligne de SQL




Server ( mot clé EXECUTE)

DECLARE tables_cursor CURSOR
FOR
SELECT name FROM sysobjects WHERE type = 'U'
OPEN tables_cursor
DECLARE @tablename sysname
FETCH NEXT FROM tables_cursor INTO @tablename
WHILE (@@FETCH_STATUS <> -1)
BEGIN
/* A @@FETCH_STATUS of -2 means that the row has




been deleted.
There is no need to test for this because this loop




drops all
user-defined tables. */.
EXEC ('DROP TABLE ' + @tablename)
FETCH NEXT FROM tables_cursor INTO @tablename
END
PRINT 'All user-defined tables have been dropped from




the database.'
DEALLOCATE tables_cursor





"Barde" a écrit :


Bonjour,
je lis le contenu d'une colonne à l'aide d'un curseur
(FETCH NEXT INTO @titi)

Je désir supprimer les tables d'après une variable
@TABLE_NAME mais je n'y arrive pas...

Avez-vous une solution...

salutation






.