数据库表1和表2对比出差异列 将表1的插入表2

SQLserver2019表1和表2对比出差异列,将表1的插入表2 写成存储过程,传的参为表名
两个表名一致,表结构可能不一致,可能一致,如何快速对比两个表,将需要的字段自动添加至需要的表中

字段大小是一致的吧

-- 连接到数据库
USE dbdemo;-- 创建临时表来存储差异列
CREATE TABLE #diff_columns (COLUMN_NAME NVARCHAR(100),DATA_TYPE NVARCHAR(100),CHARACTER_MAXIMUM_LENGTH INT
);-- 比较两个表的列,将差异列插入到临时表中
INSERT INTO #diff_columns
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH
FROM (-- 表1中的差异列SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTHFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME = 'source_table1'AND COLUMN_NAME NOT IN (SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'source_table2')UNION ALL-- 表2中的差异列SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTHFROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME = 'source_table2'AND COLUMN_NAME NOT IN (SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'source_table1')
) AS diff_columns;-- 在表2中添加差异列
DECLARE @alter_statements NVARCHAR(MAX) = '';SELECT @alter_statements = @alter_statements + 'ALTER TABLE source_table2 ADD ' + COLUMN_NAME + ' ' + DATA_TYPE +CASE WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL THEN '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS NVARCHAR(10)) + ')' ELSE '' END +';' + CHAR(13) + CHAR(10)
FROM #diff_columns;EXEC(@alter_statements);---- 插入表1的数据到表2中
--INSERT INTO source_table2 (column1, column2, column3, ...) -- 列出表1中的所有列名
--SELECT column1, column2, column3, ... -- 列出表1中的所有列名
--FROM table1;-- 删除临时表
DROP TABLE #diff_columns;

表1 结构 表2结构 执行后,表2结构更改

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/224431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络(CNN)中感受野的计算问题

感受野 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上每个像素点在原始图像上映射的区域大小,这里的原始图像是指网络的输入图像,是经过预处…

c++ 中多线程的相关概念与多线程类的使用

1、多线程相关概念 1.1 并发、并行、串行 并发(Concurrent):并发是指两个或多个事件在同一时间间隔内运行。在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机…

Visual Studio编辑器中C4996 ‘scanf‘: This function or variable may be unsafe.问题解决方案

目录 ​编辑 题目:简单的ab 1. 题目描述 2. 输入格式 3. 输出格式 4. 样例输入 5. 样例输出 6. 解题思路 7. 代码示例 8. 报错解决 方案一 方案二 方案三 方案四 总结 题目:简单的ab 1. 题目描述 输入两个整数a和b,…

ISP去噪(2)_np 噪声模型

#灵感# ISP 中的去噪,都需要依赖一个噪声模型。很多平台上使用采集的raw进行calibration,可以输出这个模型,通常称为 noise profile。 目录 名词解释: 标定方法: 校准出的noise profile: noise profile 作用域&am…

RabbitMQ插件详解:rabbitmq_web_stomp【RabbitMQ 六】

欢迎来到我的博客,代码的世界里,每一行都是一个故事 《RabbitMQ Web STOMP:打破界限的消息传递之舞》 前言STOMP协议简介STOMP(Simple Text Oriented Messaging Protocol)协议简介STOMP与WebSocket的关系 WebSocket和R…

C++模板进阶

文章目录 前言反向迭代器反向迭代器和正向迭代器的区别stl反向迭代器源码反向迭代器模拟实现测试 模板进阶非类型模板参数Array 模板的特化模板的分离编译 前言 模板进阶也没有到一些特别的东西,就是讲比较偏的一些特性。 在这里我们先来讲一下反向迭代器。 反向迭…

java.net.SocketException: Connection reset

背景 在我用socket进行TCP通信的时候,当我关闭client端时在服务端出现了Connection reset的异常。 一、问题 下面是异常信息: Exception in thread "Thread-12" java.lang.RuntimeException: java.net.SocketException: Connection reseta…

解决下载huggingface模型权重无法下载的问题

文章目录 方法一(推荐)方法二方法三依然存在的问题 由于某些原因,huggingface的访问速度奇慢无比,对于一些模型(比如大语言模型LLM)的权重文件动辄几十上百G,如果用默认下载方式,很可能中断,这里推荐几种方式。 方法一…

在React中使用动态图标

背景 需要按名称引入图标 安装 yarn add react-icons 实现 import loadable from "loadable/component" import { IconBaseProps, IconType } from "react-icons/lib"interface typesPropsIcon {nameIcon: string;propsIcon?: IconBaseProps }export f…

ShopsN commentUpload 文件上传漏洞复现

0x01 产品简介 ShopsN 是一款符合企业级商用标准全功能的真正允许免费商业用途的开源网店全网系统。 0x02 漏洞概述 ShopsN commentUpload 接口处存在任意文件上传漏洞,攻击者可以利用文件上传漏洞执行恶意代码、写入后门、读取敏感文件,从而可能导致服务器受到攻击并被控…

cat EOF快速创建一个文件,并写入内容

在linux系统中,如果你有这个需求 vi一个文件 /etc/docker/daemon.json 在这个文件中写入内容 { "registry-mirrors": ["https://iw3lcsa3.mirror.aliyuncs.com","http://10.1.8.151:8082"],"insecure-registries":[&quo…

SaaS 电商设计 (五) 私有化部署-实现 binlog 中间件适配

一、 背景 具体的中间件私有化背景在上文 SaaS 电商设计 (二) 私有化部署-缓存中间件适配 已有做相关介绍.这里具体讨论的场景是通过解析mysql binlog 来实现mysql到其他数据源的同步.具体比如:在电商的解决方案业务流中经常有 ES 的使用场景,用以解决一些复杂的查询和搜索商品…

C复习-typedef相关

参考:《C专家编程》 例子 void(*signal(int sig, void(*func)(int)))(int);分析:signal是一个函数,返回一个函数指针,它指向的函数接受int参数返回void。signal的参数是int和一个接受int的函数指针。 可以使用typedef进行简化&a…

Mybatis 拦截器实现 Like 通配符转义

Mybatis 拦截器实现 Like 通配符转义 mysql中like查询通配符问题描述 如果在MySQL中使用如下查询,将检索出全部数据 select * from t_user where name like %%%; select * from t_user where name like %_%; select * from t_user where name like concat(%,%,%)…

java.lang.UnsupportedOperationException异常解决

在执行如下代码时&#xff0c;发现当apps.add("...");代码执行时&#xff0c;会报java.lang.UnsupportedOperationException错误 List<String> apps Arrays.asList("...");apps.add("..."); 问题出现的原因如下&#xff1a; 1、ArrayLi…

K8S学习指南(17)-k8s核心对象CronJob

文章目录 前言什么是CronJob&#xff1f;示例演示步骤1&#xff1a;创建CronJob步骤2&#xff1a;定义任务模板步骤3&#xff1a;部署CronJob步骤4&#xff1a;监视CronJob的执行 总结 前言 Kubernetes&#xff08;简称K8s&#xff09;是一种用于自动部署、扩展和管理容器化应…

STM32 寄存器配置笔记——I2C 读写AT24C02 EEPROM

一、简介 本文主要介绍STM32F10xx系列如何使用软件模拟I2C总线读写AT24C02的EEPROM数据。 二、概述 I2C协议是一种用于同步、半双工、串行总线(由单片机时钟线、单数据交换器数据线组成)上的协议。规定了总线空闲状态、起始条件、停止条件、数据有效性、字节格式、响应确认信号…

MES系统物料计划协同:全面解析与应用

一、MES系统物料计划协同概述 MES系统物料计划协同是指通过MES系统对物料计划进行统一管理和协调&#xff0c;确保生产计划的顺利进行。通过将物料需求、采购、库存、生产和配送等环节进行有效集成&#xff0c;实现供应链的优化。这种协同方式有助于提高供应链的透明度和协同性…

焊盘:十字连接VS全覆盖 铺铜

在铺铜规则中&#xff0c;焊盘连接方式有两种&#xff1a; 十字连接 优点&#xff1a;较好焊接&#xff1a;因铺铜面积减少&#xff0c;温度下降速度降低&#xff0c;较好焊接&#xff0c;不易虚焊。 缺点&#xff1a;载流能力较弱&#xff1a;铺铜面积↓ → 载流能力↓全连接…

Python: list查找元素操作

not in 在Python中&#xff0c;not in 是一个逻辑运算符&#xff0c;用于检查一个元素是否不在一个列表&#xff08;list&#xff09;中。 如果元素不在列表中&#xff0c;not in 返回 True&#xff0c;否则返回 False。 语法&#xff1a; element not in list 其中&#…