比如:
A数据库名:业务数据
表名:客户信息
字段名:客户名,姓名,客户编号
B数据库名:客户资料
表名:客户基本信息
字段名:客户名,姓名,客户编号
现在想将,B数据库客户基本信息表中的字段插入到A数据库表中对应的字段中。请这要怎么写呢?
12 个解决方案
#1
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
#2
楼上正解
#3
insert into DB1.dbo.tableA select * from DB2.dbo.tableA where 客戶編號 not in (select 客戶編號 from DB1.dbo.TableA)
//當客戶已經在A數據庫中存在時不插入。
//當客戶已經在A數據庫中存在時不插入。
#4
一楼正解。
#5
楼主,你可以将SQL在数据库执行一下试试,没有错误,
再在程序中根据语法写出即可
再在程序中根据语法写出即可
#6
回楼上各位,那么连接字符串的设定呢?我用了一个TADOConnicetiong,只能指定一个数据库的啊
Provider=SQLOLEDB.1;PassWord=;Persist Security Info=True;User ID=sa;Initial Catalog=业务数据;Data Source=(Local);
Provider=SQLOLEDB.1;PassWord=;Persist Security Info=True;User ID=sa;Initial Catalog=业务数据;Data Source=(Local);
#7
如果可以从后端操作,就直接用上面的insert into ... select ...语句
如果只能从前端操作,那就分别连上两个库(用两个TADOConnection),开一个循环,从A库select出数据,一条条insert到B库中
如果只能从前端操作,那就分别连上两个库(用两个TADOConnection),开一个循环,从A库select出数据,一条条insert到B库中
#8
在查询分析器中执行的时候,报下面的错,不知道是不是因为ID是自动编号的问题,请问要怎么处呢?
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 '业务数据' 中为标识列指定显式值。
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 '业务数据' 中为标识列指定显式值。
#9
如果字段是关键字段并且是自增的,除非设置 SET IDENTITY_INSERT ON, 否则不能插入。
这种自增字段insert的时候不用手动写。
这种自增字段insert的时候不用手动写。
#10
我用的是二楼的方法进行插入的,报的上面的错。请问应该怎么写呢?
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
#11
直接指定字段
insert into DB1.dbo.tableA(field1, field2) select fieldname1, fieldname2 from DB2.dbo.tableA
insert into DB1.dbo.tableA(field1, field2) select fieldname1, fieldname2 from DB2.dbo.tableA
#12
谢谢larruping,搞定!
#1
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
#2
楼上正解
#3
insert into DB1.dbo.tableA select * from DB2.dbo.tableA where 客戶編號 not in (select 客戶編號 from DB1.dbo.TableA)
//當客戶已經在A數據庫中存在時不插入。
//當客戶已經在A數據庫中存在時不插入。
#4
一楼正解。
#5
楼主,你可以将SQL在数据库执行一下试试,没有错误,
再在程序中根据语法写出即可
再在程序中根据语法写出即可
#6
回楼上各位,那么连接字符串的设定呢?我用了一个TADOConnicetiong,只能指定一个数据库的啊
Provider=SQLOLEDB.1;PassWord=;Persist Security Info=True;User ID=sa;Initial Catalog=业务数据;Data Source=(Local);
Provider=SQLOLEDB.1;PassWord=;Persist Security Info=True;User ID=sa;Initial Catalog=业务数据;Data Source=(Local);
#7
如果可以从后端操作,就直接用上面的insert into ... select ...语句
如果只能从前端操作,那就分别连上两个库(用两个TADOConnection),开一个循环,从A库select出数据,一条条insert到B库中
如果只能从前端操作,那就分别连上两个库(用两个TADOConnection),开一个循环,从A库select出数据,一条条insert到B库中
#8
在查询分析器中执行的时候,报下面的错,不知道是不是因为ID是自动编号的问题,请问要怎么处呢?
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 '业务数据' 中为标识列指定显式值。
服务器: 消息 8101,级别 16,状态 1,行 1
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 '业务数据' 中为标识列指定显式值。
#9
如果字段是关键字段并且是自增的,除非设置 SET IDENTITY_INSERT ON, 否则不能插入。
这种自增字段insert的时候不用手动写。
这种自增字段insert的时候不用手动写。
#10
我用的是二楼的方法进行插入的,报的上面的错。请问应该怎么写呢?
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
insert into DB1.dbo.tableA select * from DB2.dbo.tableA
#11
直接指定字段
insert into DB1.dbo.tableA(field1, field2) select fieldname1, fieldname2 from DB2.dbo.tableA
insert into DB1.dbo.tableA(field1, field2) select fieldname1, fieldname2 from DB2.dbo.tableA
#12
谢谢larruping,搞定!