22,210
社区成员
发帖
与我相关
我的任务
分享
--------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-03-29 17:50:12
-- Version:Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
-- Mar 29 2009 10:27:29
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
--------------------------------------------------------------------------
--> 生成测试数据表:t1
IF NOT OBJECT_ID('[t1]') IS NULL
DROP TABLE [t1]
GO
CREATE TABLE [t1]([ID] NVARCHAR(10),[Name] NVARCHAR(20))
INSERT [t1]
SELECT '0000000061',N'湛江市公路工程质量监测站' UNION ALL
SELECT '0000000090',N'湛江市建筑工程质量检测站' UNION ALL
SELECT '0000000093',N'广东建科建筑工程质量检测中心' UNION ALL
SELECT '0000000026',N'肇庆市鼎星公路监理有限公司检测中心' UNION ALL
SELECT '0000000006',N'肇庆市公路工程质量检测站' UNION ALL
SELECT '0000000096',N'肇庆市交通工程质量监督管理站'
GO
--SELECT * FROM [t1]
--> 生成测试数据表:t2
IF NOT OBJECT_ID('[t2]') IS NULL
DROP TABLE [t2]
GO
CREATE TABLE [t2]([AID] NVARCHAR(10),[corpname] NVARCHAR(20),[corptype] NVARCHAR(10))
INSERT [t2]
SELECT '0000022692',N'佛山市盛方达建设工程检测有限公司','010' UNION ALL
SELECT '0000022693',N'广东冠粤路桥有限公司中心试验室','010' UNION ALL
SELECT '0000022694',N'广东虎门技术咨询有限公司中心试验室','010' UNION ALL
SELECT '0000022695',N'广东惠州公路建设总公司中心试验室','010' UNION ALL
SELECT '0000022696',N'广东建科建筑工程质量检测中心','010' UNION ALL
SELECT '0000022697',N'广东建粤工程检测有限公司','010' UNION ALL
SELECT '0000022698',N'广东交通集团检测中心','010'
GO
--SELECT * FROM [t2]
-->SQL2000查询如下:
select rn=identity(int),* into # from t1 t where not exists(select 1 from t2 where [corpname]=t.[Name])
insert t2
select right('0000000000'+ltrim((select MAX(aid) from t2)+rn),10),[Name],'010' from #
drop table #
select * from t2
/*
AID corpname corptype
0000022692 佛山市盛方达建设工程检测有限公司 010
0000022693 广东冠粤路桥有限公司中心试验室 010
0000022694 广东虎门技术咨询有限公司中心试验室 010
0000022695 广东惠州公路建设总公司中心试验室 010
0000022696 广东建科建筑工程质量检测中心 010
0000022697 广东建粤工程检测有限公司 010
0000022698 广东交通集团检测中心 010
0000022699 湛江市公路工程质量监测站 010
0000022700 湛江市建筑工程质量检测站 010
0000022701 肇庆市鼎星公路监理有限公司检测中心 010
0000022702 肇庆市公路工程质量检测站 010
0000022703 肇庆市交通工程质量监督管理站 010
*/
select identity(int,1,1) as id, name
into #tB
from tableA a
where not exists (select 1 from tableB b
where b.corpname = a.name)
declare @base int
select @base = max(AID) from tableB
insert into tableB
select id+@base, name from #tB
create table #TableA(ID varchar(20),Name varchar(50))
insert #TableA select '0000000061','湛江市公路工程质量监测站'
insert #TableA select '0000000090','湛江市建筑工程质量检测站'
insert #TableA select '0000000093','广东建科建筑工程质量检测中心'
insert #TableA select '0000000026','肇庆市鼎星公路监理有限公司检测中心'
insert #TableA select '0000000006','肇庆市公路工程质量检测站'
insert #TableA select '0000000096','肇庆市交通工程质量监督管理站'
create table #TableB(AID varchar(20),corpname varchar(50),corptype varchar(10))
insert #TableB select '0000022692','佛山市盛方达建设工程检测有限公司','010'
insert #TableB select '0000022693','广东冠粤路桥有限公司中心试验室','010'
insert #TableB select '0000022694','广东虎门技术咨询有限公司中心试验室','010'
insert #TableB select '0000022695','广东惠州公路建设总公司中心试验室','010'
insert #TableB select '0000022696','广东建科建筑工程质量检测中心','010'
insert #TableB select '0000022697','广东建粤工程检测有限公司','010'
insert #TableB select '0000022698','广东交通集团检测中心','010'
declare @i bigint
select @i=cast(max(AID) as INT) from #TableB
INSERT #TableB
select RIGHT(REPLICATE('0',10)+LTRIM(@i+ROW_NUMBER() OVER(ORDER BY GETDATE())),10),Name,'010' from #TableA A
where not exists(select 1 from #Tableb b WHERE a.name=b.corpname)
--declare @i bigint
--select @i=cast(max(AID) as INT) from #TableB
--
--INSERT 数据库B..TableB
--
--select RIGHT(REPLICATE('0',10)+LTRIM(@i+ROW_NUMBER() OVER(ORDER BY GETDATE())),9),Name,'010' from 数据库A..#TableA A
--where not exists(select 1 from 数据库B..TableB b WHERE a.name=b.corpname)
SELECT * FROM #TableB
AID corpname corptype
-------------------- -------------------------------------------------- ----------
0000022692 佛山市盛方达建设工程检测有限公司 010
0000022693 广东冠粤路桥有限公司中心试验室 010
0000022694 广东虎门技术咨询有限公司中心试验室 010
0000022695 广东惠州公路建设总公司中心试验室 010
0000022696 广东建科建筑工程质量检测中心 010
0000022697 广东建粤工程检测有限公司 010
0000022698 广东交通集团检测中心 010
0000022699 湛江市公路工程质量监测站 010
0000022700 湛江市建筑工程质量检测站 010
0000022701 肇庆市鼎星公路监理有限公司检测中心 010
0000022702 肇庆市公路工程质量检测站 010
0000022703 肇庆市交通工程质量监督管理站 010
(12 行受影响)
--------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-03-29 17:50:12
-- Version:Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
-- Mar 29 2009 10:27:29
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
--------------------------------------------------------------------------
--> 生成测试数据表:t1
IF NOT OBJECT_ID('[t1]') IS NULL
DROP TABLE [t1]
GO
CREATE TABLE [t1]([ID] NVARCHAR(10),[Name] NVARCHAR(20))
INSERT [t1]
SELECT '0000000061',N'湛江市公路工程质量监测站' UNION ALL
SELECT '0000000090',N'湛江市建筑工程质量检测站' UNION ALL
SELECT '0000000093',N'广东建科建筑工程质量检测中心' UNION ALL
SELECT '0000000026',N'肇庆市鼎星公路监理有限公司检测中心' UNION ALL
SELECT '0000000006',N'肇庆市公路工程质量检测站' UNION ALL
SELECT '0000000096',N'肇庆市交通工程质量监督管理站'
GO
--SELECT * FROM [t1]
--> 生成测试数据表:t2
IF NOT OBJECT_ID('[t2]') IS NULL
DROP TABLE [t2]
GO
CREATE TABLE [t2]([AID] NVARCHAR(10),[corpname] NVARCHAR(20),[corptype] NVARCHAR(10))
INSERT [t2]
SELECT '0000022692',N'佛山市盛方达建设工程检测有限公司','010' UNION ALL
SELECT '0000022693',N'广东冠粤路桥有限公司中心试验室','010' UNION ALL
SELECT '0000022694',N'广东虎门技术咨询有限公司中心试验室','010' UNION ALL
SELECT '0000022695',N'广东惠州公路建设总公司中心试验室','010' UNION ALL
SELECT '0000022696',N'广东建科建筑工程质量检测中心','010' UNION ALL
SELECT '0000022697',N'广东建粤工程检测有限公司','010' UNION ALL
SELECT '0000022698',N'广东交通集团检测中心','010'
GO
--SELECT * FROM [t2]
-->SQL查询如下:
insert t2
select right('00000000'+ltrim((select MAX(aid) from t2)+ROW_NUMBER()over(Order by getdate())),10),
[Name],'010'
from (select * from t1 t where not exists(select 1 from t2 where [corpname]=t.[Name])) a
select * from t2
/*
AID corpname corptype
0000022692 佛山市盛方达建设工程检测有限公司 010
0000022693 广东冠粤路桥有限公司中心试验室 010
0000022694 广东虎门技术咨询有限公司中心试验室 010
0000022695 广东惠州公路建设总公司中心试验室 010
0000022696 广东建科建筑工程质量检测中心 010
0000022697 广东建粤工程检测有限公司 010
0000022698 广东交通集团检测中心 010
0000022699 湛江市公路工程质量监测站 010
0000022700 湛江市建筑工程质量检测站 010
0000022701 肇庆市鼎星公路监理有限公司检测中心 010
0000022702 肇庆市公路工程质量检测站 010
0000022703 肇庆市交通工程质量监督管理站 010
*/
--> 测试数据:[TA]
if object_id('[TA]') is not null drop table [TA]
create table [TA]([ID] varchar(10),[Name] varchar(34))
insert [TA]
select '0000000061','湛江市公路工程质量监测站' union all
select '0000000090','湛江市建筑工程质量检测站' union all
select '0000000093','广东建科建筑工程质量检测中心' union all
select '0000000026','肇庆市鼎星公路监理有限公司检测中心' union all
select '0000000006','肇庆市公路工程质量检测站' union all
select '0000000096','肇庆市交通工程质量监督管理站'
--> 测试数据:[TB]
if object_id('[TB]') is not null drop table [TB]
create table [TB]([AID] varchar(10),[corpname] varchar(34),[corptype] varchar(3))
insert [TB]
select '0000022692','佛山市盛方达建设工程检测有限公司','010' union all
select '0000022693','广东冠粤路桥有限公司中心试验室','010' union all
select '0000022694','广东虎门技术咨询有限公司中心试验室','010' union all
select '0000022695','广东惠州公路建设总公司中心试验室','010' union all
select '0000022696','广东建科建筑工程质量检测中心','010' union all
select '0000022697','广东建粤工程检测有限公司','010' union all
select '0000022698','广东交通集团检测中心','010'
insert into TB select [ID],[Name],'010'
from TA A where not exists(select 1 from TB where A.[Name]=[corpname])
select * from [TB]
/*
AID corpname corptype
---------- ---------------------------------- --------
0000022692 佛山市盛方达建设工程检测有限公司 010
0000022693 广东冠粤路桥有限公司中心试验室 010
0000022694 广东虎门技术咨询有限公司中心试验室 010
0000022695 广东惠州公路建设总公司中心试验室 010
0000022696 广东建科建筑工程质量检测中心 010
0000022697 广东建粤工程检测有限公司 010
0000022698 广东交通集团检测中心 010
0000000061 湛江市公路工程质量监测站 010
0000000090 湛江市建筑工程质量检测站 010
0000000026 肇庆市鼎星公路监理有限公司检测中心 010
0000000006 肇庆市公路工程质量检测站 010
0000000096 肇庆市交通工程质量监督管理站 010
(12 行受影响)
*/
drop table TB,TA