ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

SQL Server 对比两表数据一样升序不一样的列

2022-04-13 16:33:00  阅读:183  来源: 互联网

标签:varchar name 两表 mask tablename Server tableid 升序 id


 

对比两表数据一样升序不一样的列

declare @tablename_mask varchar(50)
set @tablename_mask='A表'
declare @tableid int
print @tablename_mask
select @tableid=id
from sysobjects
where type in ('U' ,'S')
and name like @tablename_mask
print @tableid

--下面
declare @tablename_mask_new varchar(50)
set @tablename_mask_new='A表
declare @tableid_new int
print @tablename_mask_new
select @tableid_new=id
from sysobjects
where type in ('U' ,'S')
and name like @tablename_mask_new
print @tableid_new


select * from 
(select C.name,UPPER(D.name) ctype,
case when (D.name='nvarchar' or D.name='varchar') and C.length=-1 then 'max' when D.name='nvarchar' or D.name='varchar' then cast(C.length as varchar(50)) else '' end as clen
from syscolumns C join sys.types D on C.xtype=D.system_type_id
where C.id = @tableid
and C.type <> 37 and D.name<>'sysname'
) x join 
(
select C.name,UPPER(D.name) ctype,
case when (D.name='nvarchar' or D.name='varchar') and C.length=-1 then 'max' when D.name='nvarchar' or D.name='varchar' then cast(C.length as varchar(50)) else '' end as clen
from syscolumns C join sys.types D on C.xtype=D.system_type_id
where C.id = @tableid_new
and C.type <> 37 and D.name<>'sysname'
) y
on x.name=y.name where x.clen!=y.clen

查询表列中的字段

declare @tablename_mask varchar(50)
set @tablename_mask='表名'
declare @tableid int
print @tablename_mask
select @tableid=id
from sysobjects
where type in ('U' ,'S')
and name like @tablename_mask
print @tableid

select C.name,UPPER(D.name),
case when (D.name='nvarchar' or D.name='varchar') and C.length=-1 then 'max' when D.name='nvarchar' or D.name='varchar' then cast(C.length as varchar(50)) else '' end
from syscolumns C join sys.types D on C.xtype=D.system_type_id
where C.id = @tableid
and C.type <> 37 and D.name<>'sysname'

 

标签:varchar,name,两表,mask,tablename,Server,tableid,升序,id
来源: https://www.cnblogs.com/xiaoruilin/p/16140856.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有