Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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...
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
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
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...
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...
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
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
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