高分求教较复杂的应用实例:如何将A数据库中的A表数据倒入到B数据库中的B表中
本帖最后由 xujie7194 于 2013-02-03 14:02:22 编辑 如何将A数据库中的A表数据倒入到B数据库中的B表中?
1.有数据库DATABASE_A,账户名:abc 密码:123456
表名TBL_A,有15个字段,只选取2个字段,分别是字段A_NUM(varchar50) 和字段A_IC_NUM(varchar 50)是IC卡的物理编号,存储的是10进制数.
TBL_A如下:
A_NUM A_IC_NUM
-------------------------------------
SQA-01 1971339278
ABC-44 541264532
dda-31 967251628
-------------------------------------
2.有数据库DATABASE_B,帐户名:CCC 密码: 123456
表名TBL_B,有10个字段,其中二个字段用来存储TBL_A中的数据,分别是字段B_NUM(VARCHAR50)和字段B_IC_NUM
(VARCHAR 8),另一个字段B_Logic_NUM(varchar10),每插入一条数据,该字段值就自增
最后,我想要的结果如下:
B_NUM B_IC_NUM B_Logic_NUM
SQA-01 7580400E 0001000001
ABC-44 20430A94 0001000002
dda-31 39A716AC 0001000003
[解决办法]
登陆(此账号需要同时拥有两个数据库的权限),然后
insert into B..B(B_NUM,B_IC_NUM) select A_NUM,A_IC_NUM from A..A
[解决办法]
在b服务器运行以下语句,其中SerNameA要替换成A服务器的电脑名或者ip
EXEC master.dbo.sp_addlinkedserver @server='ServerA',@srvproduct='',@catalog='DATABASE_A',@provider='SQLOLEDB',@provstr=='DRIVER="SQL Server";Initial Catalog=DATABASE_A;SERVER=SerNameA;UID=abc;PWD=123456';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname='ServerA',@useself='false',@locallogin='ccc',@rmtuser='abc',@rmtpassword='123456'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'collation compatible', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'data access', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'dist', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'pub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'rpc', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'rpc out', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'sub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'connect timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'collation name', @optvalue=null
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'lazy schema validation', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'query timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server='ServerA', @optname=N'use remote collation', @optvalue=N'true'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = 'ServerA', @locallogin = NULL , @useself = N'False',@rmtuser='abc',@rmtpassword='123456'
然后在B服务器的数据库DATABASE_B运行以下语句导入数据
insert into TBL_B(B_NUM,B_IC_NUM)
select A_NUM,A_IC_NUM from ServerA.DATABASE_A.dbo.TBL_A
[解决办法]