sqlserver关于用一个sql语句批量添加数据的问题

现在有两张表,一张用户表users(id,name,pwd)
一张cust表(id,name,pwd) id自增
现在把从users表中查询出来的name,pwd(select name,pwd)from users逐条添加到cust中。但让查询出来的数据很多条,每一条都要添加到cust表中。用一条sql语句怎么实现?

insert into cust(name,pwd)
select name,pwd from users;
因为cust的id是自增,不需要插入数据。
欢迎追问。追问

那如果要是根据充users表查询出来的name,pwd做为条件修改cust表中id,怎么办?
也就是update cust set id = 1 where name =‘zhangsan ’ and pwd = ‘zhangsan’
由于name和pwd都是从users表中查询出来的,所有有多条记录。
现在就是把这多条记录作为条件更改不同的id。
先谢谢老兄了 !

追答

update cust set id = 1 where name =‘zhangsan ’ and pwd = ‘zhangsan’
这句sql的意思是 姓名和密码一样的id,set成一样,你是这个意思么?
因为 cust 的id字段是自增,你无法操作。
如果你想有这么个id建议新增字段叫user_id或者cust_id。
如果,你的意思是 姓名和密码一样的只要一条记录,
那么 可以 使用distinct
就 insert into cust(name,pwd)
select distinct (name,pwd) from users;(sqlservier中可能是dist)
如果你是希望,name和pwd相同,但是每条记录在cust表里面的id不一样的话,
那么insert into cust(name,pwd)
select name,pwd from users;
已经满足了。
PS.自增的字段 是可以做唯一标识的。每插入一条数据id就会自动增加1,所以可以保证每条记录的id不一样。
自增字段 其实就是 insert into table(id) select nvl(max(id),1) from dual;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-27
insert cust(name,pwd) select name,pwd from users where name not in(select name from cust)

向cust表插入不存在的用户名和密码
第2个回答  2011-08-27
没看清题目
insert into cust select name,pwd from users
第3个回答  2011-08-27
select name,pwd from user into cust where user.id=cust.id
第4个回答  2011-08-27
自增长标识可更新?
相似回答