系列文章
【SQL】如何查询表字段并识别主键
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110820405
【SQL】outer apply的用法
本文链接:https://blog.csdn.net/youcheng_ge/article/details/79903489
【SQL】多表连接重复数据处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/79903619
目录
前言
本专栏为【数据库】,主要介绍SQL的功能与特点、SQL数据定义语言(表、视图、索引、约束)、SQL数据操作语言(数据检索、数据插入、数据删除、数据更新)、创建与删除触发器、SQL数据控制语言(安全性和授权、事务处理)以及嵌入式SQL。
如果你对本专辑感兴趣,持续关注吧。大家有任何问题,也可以评论区反馈,私信我。
一、技术介绍
opendatasource
二、测试用例
1、导入主表数据
--1、导入主表数据
insert into T502_standard_card_master
(standard_card_no
,[standard_name]
,[use_tag]
,[create_date]
,[standard_type]
)
select
standard_card_no
,standard_name
,use_tag
,create_date
,standard_type
from T501_standard_card_code
2、导入明细数据(导入最新记录)
--2、导入明细数据(导入最新记录)
insert into T502_standard_card_detail
([standard_card_no]
,[standard_version]
,[card_state]
,[create_date]
,[release_date]
,[content_guid]
,[audit_tag]
,[countersign_tag]
,[create_work_no]
,[audit_work_no]
,[standard_note]
,[new_tag]
)
SELECT main.[standard_card_no]
,main.[standard_version]
,[card_state]
,[create_date]
,[release_date]
,[content_guid]
,[audit_tag]
,[countersign_tag]
,[create_work_no]
,[ratify_work_no]
,[standard_note]
,case when detail.standard_card_no>'' then 'T'
else 'F' end as new_tag--最新记录标识
FROM [T501_standard_card_detail] main
left join
(
SELECT max(scd.standard_card_no) as standard_card_no --单号
,max(scd.standard_version) as standard_version --版本号
FROM [T501_standard_card_detail] scd
group by scd.standard_card_no
)detail on detail.standard_card_no=main.standard_card_no and detail.standard_version=main.standard_version
3、导入适用部门表
--3、导入适用部门表
--delete T502_execute_dept
insert into T502_execute_dept
([standard_card_no]
,[standard_version]
,[dept_no]
)
SELECT [standard_card_no]
,[standard_version]
,[dept_no]
FROM [T501_execute_dept]
4、导入错误实例表
--4、导入错误实例表
--delete T502_Error_example
insert into T502_Error_example
([standard_card_no]
,[standard_version]
,[feedback_no]
,[anlys_customer_guid]
,[proc_customer_guid]
,[improve_customer_guid]
,[project_no]
,[use_feedback_tag]
,[improve_memo_guid]
,[proc_memo_guid]
,[create_date]
)
SELECT [standard_card_no]
,[standard_version]
,[feedback_no]
,[anlys_customer_guid]
,[proc_customer_guid]
,[improve_customer_guid]
,[project_no]
,[use_feedback_tag]
,[improve_memo_guid]
,[proc_memo_guid]
,[create_date]
FROM [T501_Error_example]
5、导入排查关键字(跨数据库平台导入)
--5、导入排查关键字(跨数据库平台导入)
--delete T502_obj_key
insert into opendatasource('sqloledb','Data Source=202.101.102.***;User id=**;Password=***').wsbase923.dbo.T502_obj_key
([standard_card_no]
,[check_key]
,[except_key]
,[check_sn]
)
SELECT main.standard_card_no
,[check_key]--关键字(包含)
,'' as except_key--关键字(剔除)
,[check_sn]
FROM T501_standard_card_code main
inner join
OPENDATASOURCE('sqloledb','Data Source=202.101.102.***;User id=***;Password=***').wsbase923.[dbo].[T_code_scan_obj_key] obj_key
on obj_key.check_type_no=main.standard_card_no
--6、导入排查范围(项目类型)(跨数据库平台导入)
--delete T502_scan_range_for_project
--旧系统未上该模块,暂不能操作
--7、导入排查范围(组件)(跨数据库平台导入)
--delete T502_scan_range_for_assembly
--旧系统未上该模块,暂不能操作
三、项目样例
insert into opendatasource('sqloledb','Data Source=202.101.103.224;User id=sa;Password=system').wsbase921.dbo.T401_taskplan_layout_master
([task_no]
,[sys_year]
,[sys_week]
,[project_type]
,[project_no]
,[task_type]
,[task_desc]
,[workload_pg]
,[change_type]
,[plan_start_datetime]
,[plan_end_datetime]
,[product_manager_worker_no]
,[dev_sn]
,[track_state_type]
,[feedback_no]
,[task_tag]
,[input_worker_no]
,[input_datetime]
,[confirm_tag]
,[confirm_worker_no]
,[confirm_datetime]
,[task_note]
,[state_type]
,[day1_tag]
,[day2_tag]
,[day3_tag]
,[day4_tag]
,[day5_tag]
,[dev_worker_type]
,[audit_tag]
,[abnormal_type]
,[project_code])
select [task_no]
,[sys_year]
,[sys_week]
,[project_type]
,[project_no]
,[task_type]
,[task_desc]
,[workload_pg]
,[change_type]
,[plan_start_datetime]
,[plan_end_datetime]
,[product_manager_worker_no]
,[dev_sn]
,[track_state_type]
,[feedback_no]
,[task_tag]
,[input_worker_no]
,[input_datetime]
,[confirm_tag]
,[confirm_worker_no]
,[confirm_datetime]
,[task_note]
,[state_type]
,[day1_tag]
,[day2_tag]
,[day3_tag]
,[day4_tag]
,[day5_tag]
,[dev_worker_type]
,[audit_tag]
,[abnormal_type]
,[project_code]
from T401_taskplan_layout_master main
where not exists
(
select top 1 1
from opendatasource('sqloledb','Data Source=202.101.103.224;User id=sa;Password=system').wsbase921.dbo.T401_taskplan_layout_master d
where d.task_no = main.task_no
)