博客
关于我
merge into 笔记
阅读量:793 次
发布时间:2023-02-08

本文共 2697 字,大约阅读时间需要 8 分钟。

为了确保数据库中的数据完整性和一致性,我们需要对相关表进行合理的数据处理和类型创建。以下是具体的步骤说明:

第一步:检查并删除旧类型

执行以下T-SQL语句确保类型已存在且准备删除:

    IF EXISTS (        SELECT 1 FROM sys.types t        JOIN sys.schemas s ON t.schema_id = s.schema_id        WHERE t.name = 'tp_AICMonthlyWarrantData' AND s.name = 'MIR'    )    DROP TYPE MIR.tp_AICMonthlyWarrantData    GO    

第二步:创建新类型

使用以下T-SQL语句创建需要的表类型:

    CREATE TYPE MIR.tp_AICMonthlyWarrantData AS TABLE    (        SecId CHAR(10) NOT NULL,        EffectiveDate DATE NOT NULL,        WarrantIssued INT NULL,        WarrantExercised INT NULL,        WarrantsCancelled INT NULL,        WarrantsExpired INT NULL,        Outstanding BIGINT NULL,        Note NVARCHAR(500) NULL    )    GO    

同时授予公众执行权限:

    GRANT EXECUTE ON TYPE::MIR.tp_AICMonthlyWarrantData TO PUBLIC    GO    

第三步:执行数据合并操作

对数据表进行合并操作,确保数据的一致性:

    MERGE INTO OperationData.MIR.AICMonthlyWarrantData a    USING @p_warrantTable b    ON a.SecId = b.SecId AND a.EffectiveDate = b.EffectiveDate    WHEN MATCHED THEN    SET a.Issued = b.WarrantIssued,        a.Exercised = b.WarrantExercised,        a.Repurchased = b.WarrantsCancelled,        a.Expired = b.WarrantsExpired,        a.Outstanding = b.Outstanding,        a.Note = b.Note    WHEN NOT MATCHED THEN    INSERT (SecId, EffectiveDate, Issued, Exercised, Repurchased, Expired, Outstanding, Note, LastUpdate)    VALUES (b.SecId, b.EffectiveDate, b.WarrantIssued, b.WarrantExercised, b.WarrantsCancelled, b.WarrantsExpired, b.Outstanding, b.Note, getdate())    GO    

第四步:执行可转换数据合并操作

对可转换数据表进行合并操作:

    MERGE INTO OperationData.MIR.AICMonthlyCovertibleData a    USING @p_convertibleTable b    ON a.SecId = b.SecId AND a.EffectiveDate = b.EffectiveDate    WHEN MATCHED THEN    SET a.Issued = b.ConvertibleIssued,        a.Repurchased = b.ConvertibleRepurchased,        a.Converted = b.ConvertibleConverted,        a.Redeemed = b.ConvertibleRedeemed,        a.Outstanding = b.Outstanding,        a.Note = b.Note,        a.ConvertibleTotalValue = b.ConvertibleConvertibleTotalValue,        a.ConvertibleFairValue = b.ConvertibleConvertibleFairValue    WHEN NOT MATCHED THEN    INSERT (SecId, EffectiveDate, Issued, Repurchased, Converted, Redeemed, Outstanding, Note, ConvertibleTotalValue, ConvertibleFairValue, LastUpdate)    VALUES (b.SecId, b.EffectiveDate, b.ConvertibleIssued, b.ConvertibleRepurchased, b.ConvertibleConverted, b.ConvertibleRedeemed, b.Outstanding, b.Note, b.ConvertibleConvertibleTotalValue, b.ConvertibleConvertibleFairValue, getdate())    GO    

以上操作完成后,数据将被正确合并到目标数据表中,确保数据的完整性和一致性。

转载地址:https://www.cnblogs.com/mibing/p/8609787.html

你可能感兴趣的文章
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
mac node版本管理
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
Mac OS X 上 Python 的框架和非框架构建之间的差异
查看>>
Mac OS X下Sublime Text (V2.0.1)破解
查看>>
Mac OS X汇编语言常识
查看>>
Mac os 如何安装SVN
查看>>
Mac OS下错误The superclass “javax.servlet.http.HttpServlet“ was not found on the Java Build Path的解决方法
查看>>
Mac os如何安装绿盾客户端
查看>>
mac xmind 激活
查看>>
MAC 上的 Selenium,消息:“chromedriver“可执行文件可能具有错误的权限
查看>>
Mac 下 Python+Selenium 自动上传西瓜视频
查看>>
mac 下 react Native ios环境搭建
查看>>
Mac 下使用sourcetree操作git教程
查看>>
mac 下如何建立vue-cli项目
查看>>
Mac 也需要杀毒?我亲测三款顶级杀毒软件,保护你的数据安全!从零基础到精通,收藏这篇就够了!
查看>>
Mac 在命令行快速切换目录 mark
查看>>
mac 安装PIL
查看>>
Mac 开发PhoneGap 应用,怎样加入插件 barcodescaner
查看>>
mac 搭建APK反编译环境[转]
查看>>