[SQL / Résolu] Création d'une vue depuis une PS

Création d'une vue depuis une PS [SQL / Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 22-11-2004 à 14:28:01    

Hello,  
 
Petite question, je souhaiterais créer une vue depuis une procédure stockée. Mais visiblement il l'éxécute sans la créer...  
 
Voilà ma PS :
 

Code :
  1. CREATE PROCEDURE [Truc]
  2. (@bidule varchar(200),
  3.  @machin varchar(200))
  4. AS
  5. insert into MaTable
  6.  ([bidule],
  7.  [machin])
  8. values  (@bidule
  9.  ,@machin)
  10. DECLARE @monid int
  11. set @monid = SCOPE_IDENTITY()
  12. DECLARE @sql varchar(2500)
  13. set @sql =  'CREATE VIEW [' + @machin + '] ' +
  14.  ' AS ' +
  15.  'SELECT etc... etc...'   
  16. exec (@sql)
  17. GO


 
Ca doit être le exec(@sql) qui fait qu'il ne l'a crée pas.
Est ce que qqun a une idée svp ? Merci.


Message édité par THX le 23-11-2004 à 10:24:48
Reply

Marsh Posté le 22-11-2004 à 14:28:01   

Reply

Marsh Posté le 22-11-2004 à 15:21:10    

Normalement, il est impossible de créer un objet à partir d'une PS. Et utiliser un "exec" pour pallier à cette limitation doit tout bêtement être bloqué automatiquement lors de l'execution.
 
Une PS est transactionnelle, donc il est impossible de faire une action non transactionnelle à l'intérieur, telle que créer un objet ou en détruire un autre. Pas de truncate non plus.
 
[:spamafote]

Reply

Marsh Posté le 23-11-2004 à 10:06:40    

Up  
 
Désolé mais je ne suis pas certain de ta réponse ;)  
 
Il me semble bien que ça peut marcher...

Reply

Marsh Posté le 23-11-2004 à 10:27:01    

Voilà ! Je savais bien que ça marchait cette histoire ;)  
 
Comme un âne j'avais une erreur de conversion de @monid lorsque ma vue devait s'écrire...  
 
Bref ça fonctionne très bien.  
 
Merci quand même.

Reply

Marsh Posté le 23-11-2004 à 10:51:27    

Ben en tout cas c'est pas propre :p

Reply

Sujets relatifs:

Leave a Replay

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