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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

参考技术A insert cust(name,pwd) select name,pwd from users where name not in(select name from cust)

向cust表插入不存在的用户名和密码
参考技术B 没看清题目
insert into cust select name,pwd from users
参考技术C select name,pwd from user into cust where user.id=cust.id 参考技术D 自增长标识可更新?

sqlserver语句添加列(简单)

参考技术A

语句为:

alter table A

add B VARCHAR(50)

create table C

(D varchar(10),

E varchar(10),

F varchar(10),

G varchar(10),

constraint pk_D primary key (D)

)

扩展资料:

注意事项

一、增加列:

1、alter table tableName add columnName varchar(30)  

2、ALTER TABLE dbo.doc_exa ADD column_b VARCHAR(20) NULL, column_c INT NULL ;

二、修改列类型:

alter table tableName alter column columnName varchar(4000)  

三、修改列的名称:

1、EXEC  sp_rename   'tableName.column1' , 'column2'  (把表名为tableName的column1列名修改为column2

下面的示例将TerritoryID表中的Sales.SalesTerritory列重命名为TerrID。

USE AdventureWorks2012;  

GO  EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';  

GO  

2、删除列

alter table tableName drop column columnName

3、指定表中某列默认数据

ALTER TABLE dbo.doc_exz ADD CONSTRAINT col_b_def DEFAULT 50 FOR column_b ;

以上是关于sqlserver关于用一个sql语句批量添加数据的问题的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver的查询语句和插入更新语句怎么用

怎么用sql语句删除sqlserver数据库中的多行数据

sql命令删除id用SQL语句批量删除指定ID

如何用SQL语句将数据批量插入数据库

如何在sqlserver中用sql语句插入随机的大量的数据啊~求救。。

如何在SQLserver中利用循环语句插入大量的数据