【问题标题】:Script to create an insert SQL创建插入 SQL 的脚本
【发布时间】:2017-02-01 10:13:45
【问题描述】:

我正在尝试创建一个连接各种值的脚本,最后它会创建一个插入脚本,我已经做了一个。

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

我遇到错误“FROM 附近的 sintax 不正确”,但我看不出有什么问题,有人知道吗? 有趣的是,例如这里的 Des_Label 列是脚本,数据库查找它来自哪里的引用,但是如果我在 from 语句中有错误,它怎么能找到?


在 stament 的情况下是一个 END 缺失,最后脚本返回了这个。

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')

【问题讨论】:

  • 你在表达式的末尾有一个+...它不仅在 FROM 附近,而且在它之前。不知道怎么可能比这更近。
  • 最后一个+确实有什么问题,但没有从'FROM'中删除错误。
  • 最后少了一个')',我修改了修改。
  • 我不确定',getdate(),'+ ',' 如何返回您显示的结果——您使用的代码与您发布的代码相同吗?
  • 这是一个','错误,我删除了。

标签: sql-server tsql concatenation string-concatenation


【解决方案1】:

您的案例表达式需要END

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2021-08-11
    • 2013-01-22
    • 2011-02-06
    相关资源
    最近更新 更多