begin process at 2010 07 29 22:29:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une procédure stockée

 > 

Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION

lundi 31 octobre 2005 à 17:27:10 | Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION

vds

Bonjour, je travaille sous sql server et je dois écrire une procédure stockée qui:

-Récupere et enregistre dans la table "TableTemp" le nom de certaines table contenues dans ma base de données

-Parcourir la table "TableTemp" et pour chaque ligne , insérer deux colones dans la table correspondant au nom récupéré

-Supprimer la table "TableTemp"

Voici mon code:

CREATE PROCEDURE Ajout_Enregistrement
     
 AS
CREATE TABLE TableTemp(
 ID int(4)  NOT NULL  IDENTITY(1, 1),
 Nom NVARCHAR(50),
 PRIMARY KEY(ID) 
)
INSERT INTO TableTemp(Nom)
 SELECT name FROM sysobjects WHERE xtype like 'U' AND name like '%[_]%'

DECLARE  @currentLine int
DECLARE  @nbLine int
SELECT @currentLine = 1
SELECT @nbLine = (select count(*) from TableTemp)

WHILE @currentLine <= @nbLine
 BEGIN
 DECLARE @nomTable nvarchar(50)
 SELECT @nomTable = (SELECT Nom FROM TableTemp WHERE ID=@currentLine)

 ALTER TABLE @nomTable
  ADD newColumn nvarchar(50)
END

DROP TABLE  TableTemp
GO


Mon proble se pose sur le "ALTER TABLE" car j'ai l'erreur "Syntaxe incorrecte vers @NomTable"

J'ai tout essayé (les guillemets, les quotes, les parentheses....) mais j'ai toujours le m^me probleme.

Si quelqu'un peux venir à mon secours ça serait vraiment top!
Merci d'avance!

mardi 1 novembre 2005 à 14:19:01 | Re : Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Salut Pour faire avancer le probleme voici quelques pistes à explorer la creation de table temporaire est a faire avec un # devant la table je pense que c'est plus rapide. SELECT name FROM sysobjects into #tabletemp WHERE xtype like 'U' AND name like '%[_]%' ensuite pour le parcours des tables tu peux utiliser les curseurs pour faire la boucle apres pour les l'ajout des colonnes le ne pense pas que tu puis le faire comme cela il faut faire la chaine de caractere et apres appeler un declare @strsql as varchar(4000) set @strsql = ' ALTER TABLE ' + @nomTable + 'ADD newColumn nvarchar(50) END' exec @strsql et le probleme doit etre resolu.
mardi 1 novembre 2005 à 15:54:16 | Re : Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION

vds

Ok super merci beaucoup!!

Ca marche tres bien en faisant exec(@strsql) et non exec @strsql car sinon @strsql est considérée comme une procédure stockée qui bien évidemment n'existe pas.

En tous les cas merci pour ton aide!
mardi 1 novembre 2005 à 18:31:25 | Re : Probleme ALTER TABLE DANS BOUCLE WHILE AVEC NOM DE TABLE DIFFERENT A CHAQUE ITERATION

nhervagault

Administrateur CodeS-SourceS
J'avais oublié au passage pour les tables temporaires il faut les dropper

Voila pour le complément

Pour l'erreur c'est pas évident de repondre de tete


Cette discussion est classée dans : table, select, alter, tabletemp, currentline


Répondre à ce message

Sujets en rapport avec ce message

Recherche de données dans une table [ par LePROduHTML ] Bonjour tout le monde,J'ai trois tables MySQL table_a, table_b et table_c et une donnée sous la forme d'une variable $donnee. Je souhaite réaliser une Blème script SQL [ par dr_waloo ] Bonjour, Je souhaite ajouter une colonne dans une table et seter sa valaure par défaut à FALSE. Voilà mon script : //------------------------------- renommer une colonne [ par SuperBouly ] bonjour, Je travaille avec VS2005 en VB.Net.Je désire renommer une colonne d'une table ACCESS. J'ai essayé la commande:"ALTER TABLE MaTab Trigger UPDATED sur plusieurs champs [ par Maroxye ] Bonjour! Je débute en SQL et je fois faire un TRIGGER sur l'ajout, la suppression et la modification de certains champs dans une table. Lorsque ces Génération de graphiques [ par pillsmen ] Bonjour à tous,Mon problème concerne la génération d'un graphique dans un état sous ACCESS.On va commencer par le commencement ^^, je pense qu'un exem select sur une liste de clef [ par JulienOrion666 ] Bonjour, Voila j'ai une liste de clef correspondant a des personnes d'une table et je veux tous les selectioner je les ai ds un tableau et quand je l requete insert avec select!! [ par othland ] Bonjour tout le monde!je dois inserer un tuple dans ma table T1 dont un element doit être tiré par un select d'une autre table T2, or je n'arrive pas SELECT et NULL [ par babe59 ] Bonjour,J'ai une table TBL_CLIENT avec une colonne "CIVILITE" qui peut contenir des valeurs NULL.Le problème est que lorsque que j'ai un SELECT sur ce selection d'une fraction d'une table [ par nicotom ] Bonjour,Je cherche a réaliser un select qui me renverais que 10 résultats.Pour cela je'utilise le "LIMIT = 10".Par contr j'aimerais qu'au select suiva 2 select dans une même requête [ par satsumy ] Bonjour,Voila j'ai une grosse requête à faire en fonction de plusieurs paramètres d'entrée.J'ai une table mission(idmission, date, heure, ...),une tab


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,140 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales