一、问题

业务需要把TB_Delete_KYSubProject表数据恢复到TB_KYSubProject,但提示错误,错误原因是两表字段类型存在不一致

insert into [TB_KYSubProject] SELECT * from [TB_Delete_KYSubProject]
WHERE [TB_Delete_KYSubProject].id = 'A49CFC7B-8F9D-476F-B853-CA62C18E2D03'

二、方法

一个个字段比对很麻烦,所以用以下sql 查询出两表字段不一致

可以用查询表的字段信息

SELECT  OBJECT_NAME(c.object_id) AS TableName ,
c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
WHERE c.object_id = OBJECT_ID('TB_Delete_KYSubProject')
AND T.NAME <> 'sysname'
SELECT  c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
WHERE c.object_id = OBJECT_ID('TB_Delete_KYSubProject')
AND T.NAME <> 'sysname'
EXCEPT
SELECT c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
WHERE c.object_id = OBJECT_ID('TB_KYSubProject')
AND T.NAME <> 'sysname'

得到两个表具体哪里不一致

SELECT  OBJECT_NAME(c.object_id) AS TableName ,
c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
WHERE c.object_id = OBJECT_ID('TB_Delete_KYSubProject')
AND T.NAME <> 'sysname'
AND c.name IN ( 'FrequencyCount', 'IsDelete', 'PortNumber' ) SELECT OBJECT_NAME(c.object_id) AS TableName ,
c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
WHERE c.object_id = OBJECT_ID('TB_KYSubProject')
AND T.NAME <> 'sysname'
AND c.name IN ( 'FrequencyCount', 'IsDelete', 'PortNumber' )

扩展:

获取表字段说明

SELECT  c.name AS ColumnsName ,
t.name AS ColumnType ,
c.max_length AS Length ,
CAST(ep.[value] AS VARCHAR(100)) AS [字段说明]
FROM sys.columns c
INNER JOIN systypes t ON c.system_type_id = t.xtype
LEFT JOIN sys.extended_properties AS ep ON ep.major_id = c.object_id
AND ep.minor_id = c.column_id
WHERE c.object_id = OBJECT_ID('TB_Delete_SJSubProject')
AND T.NAME <> 'sysname'
AND ep.class = 1

SQL比较两表字段和字段类型的更多相关文章

  1. sql server 删除表字段和字段的约束

    删除数据库表中的字段时,使用了 :alter table 表名 drop column 列名 服务器返回的错误为:Server: Msg 5074, Level 16, State 1, Line 1 ...

  2. SQL动态更新表字段 传入字段可能为空

    小技巧: 项目组有修改产品的基本信息字段 但有时候传入的字段可能为空 也可能不为空  动态修改表中字段. USE [BetaProductMarket_DB] GO )) BEGIN DROP PRO ...

  3. sql查询表的所有字段和表字段对应的类型

    1.查询表的所有字段 select syscolumns.name from syscolumns where id=object_id('写上要查询的表名') 2.查询表的所有字段+表字段对应的类型 ...

  4. mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  5. mysql - 查看表字段和字段描述

    1.mysql查看表字段和字段描述 SELECT column_name, column_comment FROM information_schema.columns WHERE table_sch ...

  6. SQL语句修改表字段名/修改字段长度/增加字段/删除字段

    修改字段名Exec sp_rename 'zxchem_Suggest.End_Date','Yj_Finish_Date','Column' 修改字段长度Alter Table zxchem_Sug ...

  7. SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等

    )-- 表名 set @table_name='bqcform101' --============表结构 select 类别,表名or字段名,描述,字段类型,是否自增,允许为NULL,默认值 fro ...

  8. 使用SQL查看表字段和字段说明

    MySql: show full columns from tableName; Sql server: SELECT A.name AS table_name, B.name AS column_n ...

  9. SQL把a表字段数据存到b表字段 update,,insert

    update SYS_Navigation set SYS_Navigation.PARENT_XH = SYS_Power_menu.parent_id,SYS_Navigation.web_tit ...

随机推荐

  1. 从mysql高可用架构看高可用架构设计

    高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果 ...

  2. Hmz 的女装(递推)

    Hmz 的女装 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Sub ...

  3. hdoj1528【二分匹配】

    题意: 在一幅扑克牌里,有两个人在比大小,第二个人最多能赢第一个人几张牌. 思路: 这道题目用一下二分匹配还是很明显的. 那么就是建图似乎要麻烦一下,但还是很方便的.将扑克牌一次进行编号,然后牌面比他 ...

  4. 安装 statconn 使R与c#交互

    很久以前完成过,但是最近重新折腾发现全忘了,所以记下来. 1.安装 R 2.安装 R studio 3.去 http://rcom.univie.ac.at/download.html 下载 stat ...

  5. hdu 3622 Bomb Game【二分+2-SAT+tarjan】

    用read()会挂 二分半径,显然最优的是所有原都用这个最小半径,然后2-SAT把相交的圆建图,跑tarjan判一下可行性即可 #include<iostream> #include< ...

  6. [BZOJ4064/Cerc2012]The Dragon and the knights

    Description 与当地鞋匠协会发生冲突的瓦维尔城堡的龙决定将它的狩猎场移出克拉科夫以减少敌对的邻居数量.现在他正在给和平而宁静的Bytes王国带来灾难与恐怖. 在Bytes王国有n条河流,每一 ...

  7. 数据库sql 使用 lag 和OVER 函数和 like 使用 小技巧

    1. sample 1: Lag()就是取当前顺序的上一行记录.结合over就是分组统计数据的.Lag()函数,就是去上N行的字段的数据. SQL> select * from x; A---- ...

  8. 477 Total Hamming Distance 汉明距离总和

    两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量.计算一个数组中,任意两个数之间汉明距离的总和.示例:输入: 4, 14, 2输出: 6解释: 在二进制表示中,4表示为0100,14表 ...

  9. Android设计模式——MVP

    一.什么是MVP MVP:全称 Model-View-Presenter. MVP框架由3部分组成:View层负责显示,Presenter层负责逻辑处理,Model层提供数据. View:负责绘制UI ...

  10. random模块详解

    1.import random random·randint(a,b) 括号里是一个范围,random·randint()是取括号里范围的随机数. >>> import random ...