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语句怎么实现?
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;
向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语句批量添加数据的问题的主要内容,如果未能解决你的问题,请参考以下文章