2016-09-23 81 views
0

我試圖創建一個腳本來連接各種值,最終它創建一個插入腳本,我已經做了一個。創建插入腳本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 

結果是這樣的:

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

我在做另一個但無法弄清楚,爲什麼不工作。

WHILE (exists (select Id_EtapaCampoGen from WKF_EtapaCampoGen Where Id_Etapa = @Id_Etapa)) 

    INSERT INTO #SCRPTS 
    SELECT getdate(), 
     'INSERT WKF_EtapaCampoGen VALUES 
     (@Id_Etapa' +  
     ','+ ''''+ Des_Label + '''' + 
     ','+ ''''+ Vl_Identificador + '''' + 
     ','+ cast(Flg_Obrigatorio as Varchar(2)) + 
     ',getdate(),'+ 
     ',' + CASE WHEN DT_Alteracao IS NULL OR DT_Alteracao = '' THEN 'NULL' ELSE '''' + 
     ',' + cast(FLG_Situacao as Varchar(2))+ 
     ',' + '''' + Tipo + '''' + 
     ',' + '''' + Query + '''' +')' 

     FROM WKF_EtapaCampoGen 

我有錯誤「不正確的sintax附近FROM」,但我不能看到有什麼不對,有人知道嗎? 有趣的是,例如在這個列Des_Label是腳本數據庫找到它來自哪裏的參考,但如果我從它的聲明中有錯誤它可以找到?


這是一個END失蹤的情況下,當stament結束腳本返回這個。

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

你有一個'+'在表達式的結束......它不僅是從附近的前右它。不知道它如何可能比這更接近。 – Hogan

+0

最後一個+確實是錯的,但並沒有從'FROM'中刪除錯誤。 –

+0

最後我錯過了一個''',我編輯了這些變化。 –

回答

1

的情況下表達需要一個END

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

謝謝,它工作正常。 –