alter_his_sync_config_feeflag.sql 1.2 KB

1234567891011121314151617181920212223
  1. -- BS_HISSyncConfig 增加费用明细同步开关 FeeFlag
  2. -- 执行前请先备份 BS_HISSyncConfig(备份见 openspec/changes/his-inpatient-fee-sync/db/backup_bs_hissyncconfig.md)
  3. -- 前置:User.BSHISSyncConfig 类已增加 FeeFlag 属性并编译
  4. -- 1. 增加列(若已存在会报错,可忽略该错误继续执行)
  5. &sql(ALTER TABLE BS_HISSyncConfig ADD COLUMN FeeFlag VARCHAR(10))
  6. WRITE "ADD COLUMN SQLCODE="_SQLCODE,!
  7. -- 2. 存量配置行回填默认值 Y
  8. &sql(UPDATE BS_HISSyncConfig SET FeeFlag='Y' WHERE FeeFlag IS NULL OR FeeFlag='')
  9. WRITE "BACKFILL SQLCODE="_SQLCODE_" ROWS="_%ROWCOUNT,!
  10. -- 查询验证
  11. WRITE "=== BS_HISSyncConfig 费用明细同步开关 ===",!
  12. SET stmt=##class(%SQL.Statement).%New()
  13. SET prepSC=stmt.%Prepare("SELECT ID,HospCode,SynFlag,WarningFlag,FeeFlag FROM BS_HISSyncConfig ORDER BY ID")
  14. IF $$$ISERR(prepSC) { WRITE "SQL准备失败:"_$System.Status.GetErrorText(prepSC,"cn"),! }
  15. ELSE {
  16. SET rslt=stmt.%Execute()
  17. WHILE rslt.%Next() {
  18. WRITE "ID="_rslt.%Get("ID")_" HospCode="_rslt.%Get("HospCode")_" SynFlag="_rslt.%Get("SynFlag")_" WarningFlag="_rslt.%Get("WarningFlag")_" FeeFlag="_rslt.%Get("FeeFlag"),!
  19. }
  20. }