[SQLSERVER]Job avec un nom de db variable

Job avec un nom de db variable [SQLSERVER] - SQL/NoSQL - Programmation

Marsh Posté le 24-08-2010 à 17:00:39    

Je dois faire un job en deux steps: un pour un insert, un autre pour un update.
 
Je récupère les DB's dans lesquelles je dois bosser en faisant:

Code :
  1. USE GENREAL;
  2. SELECT c.dbName FROM clients WHERE flag IS NOT NULL


(c'est plus complexe que ça, je réduis pour plus de clarté)
 
Puis je dois boucler sur les dbName pour lancer mes deux steps
qui font des trucs du genre:
step1

Code :
  1. USE @dbName;
  2. INSERT INTO visitors ....
  3. SELECT ...
  4. LEFT JOIN PREFIX_'+@dbName+'_SUFFIX.requests ...


 
step2

Code :
  1. USE @dbName;
  2. UPDATE visitors ....


 
(Il n'est pas primordial de le faire en deux steps, c'est juste pour plus de clarté)
 
comment puis-je implémenter un truc pareil ?
 
La j'en suis à tenter le  
left join PREFIX_'+@dbName+'_SUFFIX.requests
en hardcodant @dbName mais  ça ne marche pas  [:ddr555]

Reply

Marsh Posté le 24-08-2010 à 17:00:39   

Reply

Marsh Posté le 25-08-2010 à 08:35:45    

Tu dois ecrire toute ta query dans une variable et puis l'executer:

Code :
  1. Declare @truc varchar(max)
  2. SET @truc = 'Use ' + @DBName + '; Select * From ' + @TABLE
  3. Exec @truc

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed