但不知道两张表的字段名称和类型.
---这个你select * from a
select * from b不就可以看到他们的字段名称吗?你要查找类型,
select column_name,data_type from information_schema.columns
where table_name = 'a' or table_name = 'b'就可以知道他们的名称类型你先看看结构再找方法,我们都不知道你的表结构,也不好给你建议!
不过这个问题的解答,很多旧帖子就问过啦
找关于重复纪录即可得到解答
---这个你select * from a
select * from b不就可以看到他们的字段名称吗?你要查找类型,
select column_name,data_type from information_schema.columns
where table_name = 'a' or table_name = 'b'就可以知道他们的名称类型你先看看结构再找方法,我们都不知道你的表结构,也不好给你建议!
不过这个问题的解答,很多旧帖子就问过啦
找关于重复纪录即可得到解答
select @sql=isnull(@sql,'')+' and A.['+name+']=B.['+name+']',
@col=name
from syscolumns where id=object_id('A')
select @sql='select B.* from B left join A on '+stuff(@sql,1,4,'')+' where A.['+@col+'] is null'
exec(@sql)
create table A
(
ID int,
Name varchar(10)
)
create table B
(
ID int,
Name varchar(10)
)
insert A
select 1,'AAA' union
select 2,'BBB'
insert B
select 1,'AAA' union
select 2,'BBB' union
select 3,'CCC' union
select 4,'DDD'--测试
declare @sql varchar(1000),@col varchar(10)
select @sql=isnull(@sql,'')+' and A.['+name+']=B.['+name+']',
@col=name
from syscolumns where id=object_id('A')
select @sql='select B.* from B left join A on '+stuff(@sql,1,4,'')+' where A.['+@col+'] is null'
exec(@sql)--删除测试环境
drop table A,B--结果
/*
ID Name
----------- ----------
3.00 CCC
4.00 DDD
*/