一.问题 给了两个各有四五十个列的表,找出他们相同的列和不同的列 二.查询两个表的列,存在临时表 --#a ,#b都是临时表,当前连接断开后自动删除--RANK() OVER (ORDER BY syscolumns.name DESC) AS 是SQL2005支持的,在每行记录前加上自增序号--IDENTITY(INT,1,1) 函数必须要和into联合使用 1.将表的列存入#a--'destTbl'比较的表名 select * into #a from (select RANK() OV…
SqlServer .判断表Users是否存在 if object_id(N'Users',N'U') is not null print '存在' else print '不存在' .判断表Users中是否存在Name这一列 if exists(select * from syscolumns where id=object_id('Users') and name='Name' collate Chinese_PRC_CI_AI_WS) print '存在' else print '不存在'…
最近想起来做一个项目代码生成器,直接生成底层代码.. 这免不了要先行读取数据库已有的信息.. 废话不多说..开整.. SELECT NAME FROM MASTER..SYSDATABASES --读取所有库 上边语句只得到单表单列..里边就全是数据库的名字.. 然后选择数据库后..按此数据库连接重新链接数据库..执行以下语句 SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' --读取所有表 上边语句依然是得到的单表单列,存储的值全不是当前选择的数据库中的表…
概述 项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据.在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和INTERSECT运算符比较两张表的数据. EXCEPT运算符返回由EXCEPT运算符左侧的查询返回.而又不包含在右侧查询所返回的值中的所有非重复值. INTERSECT返回由INTERSECT运算符左侧和右侧的查询都返回的所有非重复值. 例如有表A和B,其建表和数据脚本如下: if object_i…