Ⅰ sql 用update语句一次更新多个字段应该怎么写
update表名set(字段1,字段2,字段3,...)=(select数值1,数值2,数值3,...)where条件
多个字段可以使用逗号隔开,每一个 字段名=值 就是赋值,其后的WHERE 条件语句可加可不加。
拓展资料:
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
Ⅱ 求SQL批量更新语句
update table_name set 申报期 = 2
where 申报期=1
and 是否大龄=是
是这个意思吗?
Ⅲ SQL 批量更新语句
1.使用存储过程
2.在程序代码里逐条循环执行
这里给出一种更高效、简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer、Oracle、DB2下的写法
--关键点:t4和t1是同一个table,primary key肯定也是同一个,
--并以它进行关联,这样在 select语句里即可引用到要update的表的fields
UPDATETable1ASt1
SET(Field1,Field2)=(SELECTField21,Field22
FROMTable2t2
INNERJOINTable3t3
ONt3.Field31=t2.Field23
INNERJOINTable4t4
ONt3.Field32=t4.Filed41
WHEREt2.Field24>=''
ANDt1.fId=t4.fId);
----------------------------MSSQLServer-----------------------------------
UPDATEt1
SETField1=Field21,Field2=Field22
FROMTable2t2
INNERJOINTable3t3
ONt3.Field31=t2.Field23
INNERJOINTable4t4
ONt3.Field32=t4.Filed41
WHERE((t2.Field24>='')
ANDt1.fId=t4.fId);
Ⅳ SQL数据批量更新语句怎么写
--试试下面个吧,如果使用存储过程可能会好些
create table a1(
id1 int primary key,
va1 varchar(20)
)
drop table b2
create table b2(
id2 int primary key,
va2 varchar(20)
)
--创建一张中间表来储存被删除的id
create table idrecord
(
id int
)
--a1 插入 测试数据
insert into a1 values (1, '地理');
insert into a1 values (2,'物理');
--b2 插入 测试数据
insert into b2 values (1, '数学');
insert into b2 values (3,'英语');
select * from a1
select * from b2
--如果A1存在ID与B1相同的数据,则更新,由于主键不能重复插入,所以先删除数据再进行添加,
--记录被删除的id
delete from idrecord
insert into idrecord select id1 from a1 where id1 in (select id2 from b2)
--先删除 在 a1 ID 与 b2相同的数据
delete from a1 where id1 in (select id2 from b2)
insert into a1 select * from b2 where id2 in (select * from idrecord)
--如果A1不存在ID与B1相同的数据,则添加B1中的数据到A1中
insert into A1 select * from b2 where id2 not in (select id1 from a1)
Ⅳ 求一条sql批量更新语句
可以借助语言(如:Python、Java等)实现。单单SQL里是不可以定义数组的。
Ⅵ 请教一个多条批量更新的SQL语句
declare @output varchar(8000)
select @output=coalesce(@output,'')+ a.name +'=case '+a.name+' when 0 then 5 when 1 then 4 when 2 then 3 when 3 then 4 else 1 end,' from syscolumns a
left join sysobjects b
on a.id=b.id where b.name='tb'
select @output=substring(@output,1,LEN(@output)-1)
exec(N'update tb set '+@output+'')
--如果只操作部分列,就复制一个空白表
select top 0 a,b,g into tb1
declare @output varchar(8000)
select @output=coalesce(@output,'')+ a.name +'=case '+a.name+' when 0 then 5 when 1 then 4 when 2 then 3 when 3 then 4 else 1 end,' from syscolumns a
left join tempdb..sysobjects b
on a.id=b.id where b.name='tb1'
select @output=substring(@output,1,LEN(@output)-1)
exec(N'update tb set '+@output+'')
Ⅶ 求sql语句批量更新
Declare Up_Code_Cursor Cursor for select code from table for update
Declare @code varchar(50),@i int
set @i = 1
open Up_Code_Cursor
fetch Next from Up_Code_Cursor into @code
while @@fetch_status = 0
begin
update table set code = right('0000'+cast(@i as varchar),4) from up_Code_Cursor
select @i = @i + 1
fetch Next from Up_Code_Cursor into @code
end
CLOSE Up_Code_Cursor
DEALLOCATE Up_Code_Cursor
Ⅷ 关于SQL语句的批量update的写法,求解!
update [tablename] set status = 1 where id=1 or id=2 or id=3 or id=4; update [tablename] set status = 1 where id between 1 and 4 update [tablename] set status = 1 where id in (数组的值)
Ⅸ 求一个SQL 批量更新语句
数值型
update 表名 set 字段=字段+1000
文本型
update 表名 set 字段='1'+字段
Ⅹ 批量更新SQL语句
批量更新SQL语句
update qc_top set top_id='1' where id=1
update qc_top set top_id='1' where id=2