重量级问题,高手帮忙
我现在有两个数据库1和2.
数据库1中一个用户表(编号,用户名,密码)
数据库2中一个User表(ID,User,password)
我现在想复制数据1中的用户表中的数据到数据库2中的User表.
我的思路大致是这样的,检索出编号为"x"的 用户名和密码,然后插入User表(User,password),ID自增.
这样的笨办法,每条记录要执行一次语句!~
高手帮忙我写下这个语句,谢谢~
如果可以提供更好的解决办法更是谢谢大家啦~多谢了~
问题点数:100、回复次数:20Top
1 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:23:57 得分 0
select 用户名,密码,identity(int,1,1) as 编号 into #1 from t1
insert into 数据库2..user(User,password,ID)
select 用户名,密码,编号 from #1
Top
2 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:25:00 得分 100
先要选择数据库1,这样语句就不用指定数据库Top
3 楼cywarson(阿胜)回复于 2005-08-04 00:27:27 得分 0
insert into user(user,password)select 用户名,密码 from 用户表 where 编号='X'Top
4 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 00:28:38 得分 0
select 用户名,密码,identity(int,1,1) as 编号 into #1 from t1
需要个where吧?Top
5 楼cywarson(阿胜)回复于 2005-08-04 00:30:37 得分 0
修改一下:
user 数据库2
insert into user(user,password)select 用户名,密码 from 数据库1.dbo.用户表 where 编号='X'
Top
6 楼iwl()回复于 2005-08-04 00:34:31 得分 0
可以用点标记的方式很简单 ,自动编号根本就不用处理。 insert into 数据库2.dbo.user1 select * 数据库1.dbo.表名 ,前提是表结构一样。不一样的话列出列名就可以了Top
7 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:34:54 得分 0
to xuhongying8848(偶遇-邂逅)
如果是全部数据就不需要了identity(int,1,1)是生成一个自动成长的以1为起点1为步长的列Top
8 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 00:35:28 得分 0
不好意思,刚才我是理解错了~
select 用户名,密码,identity(int,1,1) as 编号 into #1 from t1
insert into 数据库2..user(User,password,ID)
select 用户名,密码,编号 from #1
这个帮忙解释下,可以吗?Top
9 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:36:19 得分 0
如果不需要全部数据
那么在后面加个where带上你需要的条件就可以了.Top
10 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:38:11 得分 0
select 用户名,密码,identity(int,1,1) as 编号 into #1 from t1
导入临时表生成自增列
insert into 数据库2..user(User,password,ID)
select 用户名,密码,编号 from #1
插入数据库2的表user中(因为需要的数据在#1里面了所以查出来插入就可以了.)Top
11 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 00:39:18 得分 0
谢谢 撒旦,插入这个 数据库2..user 中间两点是啥意思?
from t1 是指用户表吧Top
12 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:40:54 得分 0
对t1是指用户表
datebase..table
指定数据库的表Top
13 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 00:41:52 得分 0
identity(int,1,1)
我数据比较多,想从1~100,101~200,这样分次实现的话.
可以实现吗?不要2000条记录,服务器能受得了吗?Top
14 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 00:45:17 得分 0
identity(int,1,1)
中间的参数是起点,后面的是步长.
比如identity(int,100,2)
就是100开始100,102,104……
2000条记录不多没问题。
Top
15 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 00:47:19 得分 0
谢谢,我去测试下,有问题明天再来问!Top
16 楼xiaonvjing(飞扬)回复于 2005-08-04 06:25:26 得分 0
这想你这个问题用触发器实现要好些吧Top
17 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-04 10:04:10 得分 0
楼上的能说具体点吗?
在撒旦帮助下,我建了两个数据库和表,简单测试成功
我那个有数据的数据库是ACCESS,要升级为SQL时,老是出现:"溢出"
这个要怎么解决?Top
18 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-04 10:09:42 得分 0
你要把accse的数据库变为sql你建个数据库把数据导过去就可以了。Top
19 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-05 02:00:13 得分 0
用DTS?
先在SQL中建立一个与ACCESS一样的数据库,然后导过去?Top
20 楼xuhongying8848(偶遇-邂逅)回复于 2005-08-06 23:18:32 得分 0
谢谢各位!Top




