一、问题

业务需要把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. 004--linux命令tar 软硬链接

    一.tar命令介绍: -c:创建一个新的tar文件 -t:列出tar文件中目录的内容 -x:从tar文件中抽取文件 -f:指定归档文件或磁带(也可能是软盘)设备(一般都要选) -v:显示所打包的文件的 ...

  2. 任务39:Role以及Claims授权

    基于Role角色的授权 asp.net core在逐渐淘汰这种基于RoleBase的基于角色的授权.鼓励大家使用基于Claim的授权 在认证的时候Cliam已经加入了Role 注释38节课的 自定义验 ...

  3. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

    课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们 ...

  4. ORACLE知识点整理之一

    1. 安装客户端 去官方网站下载 此处略 2. 客户端登陆身份 Oracle有三种身份登录方式:Normal.sysdba.sysoper. normal身份:普通用户身份,默认选项(默认可以不写), ...

  5. 洛谷 - P1443 - 马的遍历 - bfs

    略有收获的bfs,使用了try_enqueue函数使得加入队列非常方便.性能理论上是一样的因为是inline? 还有就是左对齐是使用%-4d,相对于右对齐的%4d,还有右对齐前导零的%04d,自己试一 ...

  6. 鸟哥私房菜基础篇:Linux 档案与目录管理习题

    猫宁!!! 参考链接:http://linux.vbird.org/linux_basic/0220filemanager.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-什么是绝对路径与相对 ...

  7. 浅谈单调栈 By cellur925

    这位dalao的单调栈文章很棒!我写的是他的题单233. http://www.cnblogs.com/COLIN-LIGHTNING/p/8474668.html 一.单调栈的一般写法 ;i< ...

  8. 关于协程:nodejs和golang协程的不同

    nodejs和golang都是支持协程的,从表现上来看,nodejs对于协程的支持在于async/await,golang对协程的支持在于goroutine.关于协程的话题,简单来说,可以看作是非抢占 ...

  9. kettle 导入xml 资源文件

    Repository | ExploreRight click the root node of the repositorySelect Import objects from an XML fil ...

  10. CSS3向外扩散的圆

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...