博客
关于我
merge into 笔记
阅读量:799 次
发布时间: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

你可能感兴趣的文章
nginx启动脚本
查看>>
Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
Nginx学习总结(14)——Nginx配置参数详细说明与整理
查看>>
Nginx安装与常见命令
查看>>
Nginx安装及配置详解
查看>>
Nginx实战经验分享:从小白到专家的成长历程!
查看>>
Nginx实现反向代理负载均衡
查看>>
nginx实现负载均衡
查看>>
nginx开机启动脚本
查看>>
nginx异常:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf
查看>>
nginx总结及使用Docker创建nginx教程
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:128
查看>>
nginx报错:the “ssl“ parameter requires ngx_http_ssl_module in usrlocalnginxconfnginx.conf128
查看>>
nginx日志分割并定期删除
查看>>
Nginx日志分析系统---ElasticStack(ELK)工作笔记001
查看>>
Nginx映射本地json文件,配置解决浏览器跨域问题,提供前端get请求模拟数据
查看>>
nginx最最最详细教程来了
查看>>
Nginx服务器---正向代理
查看>>