Ⅰ 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