2016-09-23 1 views
0

J'essaie de créer un script qui concatène diverses valeurs qui, à la fin, crée un script d'insertion, j'en ai déjà fait un.Script pour créer une insertion SQL

INSERT INTO #SCRPTS 
SELECT getdate(), 
    'INSERT WKF_TpProcesso VALUES (''' + Des_TpProcesso + ''',' + cast(Cod_Func as Varchar(8)) + ',getdate() ,null ,1 ,' + CASE WHEN Id_Sistema IS NULL THEN 'Null' ELSE CAST(Id_Sistema as Varchar(6)) END 
    +',0,1,0,'+ CASE WHEN Des_CodigoTpProcesso IS NULL THEN 'Null' ELSE '''' + Des_CodigoTpProcesso END +''''+ ','+CAST(Flg_ProxProcesso as Varchar(1))''')' 
FROM WKF_TpProcesso 
WHERE Des_CodigoTpProcesso = @Des_CodigoTpProcesso 

Le résultat est le suivant:

INSERT WKF_TpProcesso VALUES ('Processo Teste',41815,getdate() ,null ,1 ,169,0,1,0, 'PcTestPlus',1) 

Je fais une autre mais ne peut pas comprendre pourquoi ne fonctionne pas. J'ai une erreur "Sintax incorrect près de", mais je ne vois pas ce qui ne va pas, quelqu'un sait? Ce qui est marrant, c'est que par exemple la colonne Des_Label dans ce script la DB trouve la référence d'où elle vient, mais si j'ai l'erreur dans la syntaxe from comment trouver? Il s'agissait d'un END manquant dans le cas où stament, avec la fin le script a renvoyé ceci.

INSERT WKF_EtapaCampoGen VALUES 
     (@Id_Etapa,'Areas','CampoComplementar1',0,getdate(),NULL,1,'Lista','select Des_area as Texto, Des_area as valor from wkf_area') 
+1

Vous avez un '' + à la fin de l'expression ... non seulement il est proche de celui-ci est juste devant elle. Je ne sais pas comment ça pourrait être plus proche que ça. – Hogan

+0

Le dernier + ce qui en effet faux, mais n'a pas supprimé l'erreur du «FROM». –

+0

Il y avait un ')' manquant à la fin, j'ai édité avec les changements. –

Répondre

1

votre expression de cas a besoin d'un END

CASE WHEN DT_Alteracao IS NULL OR DT_Alteracao = '' THEN 'NULL' ELSE '''''' END 
+0

Merci, ça a bien fonctionné. –