SQL的update語句怎么寫
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值,update語句的寫法:
1、UPDATE table_name
2、SET column1=value1,column2=value2,。
3、WHERE column(1)=value(1),column(2)=value(2)。and column(n)=value(n);
4、UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing',WHERE LastName = 'Wilson'
擴展資料
SQL的update語句寫法的特點
1、一體化:SQL集數據定義DDL、數據操縱DML和數據控制DCL于一體,可以完成數據庫中的全部工作。
2、使用方式靈活:它具有兩種使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主語言中使用。
3、非過程化:只提操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機“做什么”,而不需要告訴它“怎么做”。
4、語言簡潔,語法簡單,好學好用:在ANSI標準中,只包含了94個英文單詞,核心功能只用6個動詞,語法接近英語口語。
參考資料來源:搜狗百科—update (數據庫SQL語法用語)
數據庫更新語句怎么寫
如果按你的要求需要寫個存儲過程來實現。麻煩。
如果按下面來做的話,會有重復值,
update 表名 set column_no=datepart(day,column_time)
建議你把column_no 按如20090101來更新較方便,這樣能與column_time能對應上。
update 表名 set column_no=(datepart(year,column_time)*100+datepart(month,column_time))*100+datepart(day,column_time)
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)
oracle數據庫update語句
update兩表關聯的寫法包括字查詢
* t2 set parentid=(select ownerid from t1 where *=*);
2. update tb_client_win_lost_report a set *g_code_id=2
where game_code_id=70000
and exists
(select 'x' from (select *
from (select id,level_ from tb_admin_role connect by prior id=parent_id start with id =1) a,
(select lv_id from tb_rolling_plan where rolling_code_id = 2 and game_code_id=70000) b
where *_id=*) c where *_id=*)
and rolling_code_id=1
3. update (select rolling_code_id from tb_client_win_lost_report a,temp_role_id b
where *_id=*
and rolling_code_id=1) a set *g_code_id=2;
4. update tb_client_win_lost_report a set *g_code_id=2
where game_code_id=70000
and exists
(select 'x' from (select id from temp_role_id) c where *_id=*)
and rolling_code_id=1
and rownumcommit;
* 多個字段的寫法
update a set (c1,c2,c3) =(select b1,b2,b3 from b where。。) where 。。;
sql update 語句
按你這個腳本直接改:
create trigger update_student on student
for update
as
begin
declare @班級 int
select @班級=班級 from inserted
update class set 人數 = 人數 + @@rowcount
where 班級=@班級
select @班級=班級 from deleted
update class set 人數 = 人數 - @@rowcount
where 班級=@班級
end
inserted是剛剛增加的整行,deleted是剛剛刪除的整行數據
沒有updated,update的過程就是先delete,再insert,所以用inserted和deleted能表達update的過程了
另外你這個觸發器只能對更新結果是1個班級的有效,如果是多個班級,在select @班級=班級 from inserted這句上會報錯
最好的辦法還是
create trigger update_student on student
for update
as
begin
update class set 人數 = 人數 + 人數_add
from (select 班級,count(1) as 人數_add from inserted group by 班級) b
where class.班級=b.班級
update class set 人數 = 人數 - 人數_min
from (select 班級,count(1) as 人數_min from deleted group by 班級) b
where class.班級=b.班級
end