SQL 表與表之間的資料更新不同方式

2021-06-26 13:22:21 字數 1504 閱讀 7898

第一種方式:更新表gifts 更新禮品名稱 (只能寫gifts.dgf_name,為什麼不能寫別名呢? 原來update不允許 帶有別名,那麼我們如何改進)
update gifts

set

gifts.dgf_name =gift.dgf_name

from new_gifts gift

where gifts.dgf_id= gift.dgf_id

第二種方式:更新表 別名g 寫法同上,只是把表名寫在了from語句之後,發現別名可用了:)
update g

set

g.dgf_name =gift.dgf_name

from gifts g, new_gifts gift

where g.dgf_id= gift.dgf_id

第三種方式:其中乙個欄位全更新,另外三個欄位按條件更新

update t

set t.ldd_stay_account='y'

,t.ldd_lns_id = case when ldd_ldb_id=100 then '999' else ldd_lns_id end

,t.ldd_com_name_enhance = case when ldd_ldb_id=100 then '標準公司' else ldd_com_name_enhance end

,t.ldd_com_status =case when ldd_ldb_id=100 then 'y' else ldd_com_status end

from load_data_detail t

where ldd_com_name='測試公司'

第四種方式:多表關聯更新,其中一張表對應的為多條記錄

update t

set t.lea_sfdc_id = d1.ltd_sfdc_id,

t.lea_sfdc_product_code = d2.ltd_sfdc_id , t.lea_push_status = 'y',t.lea_push_date=getdate()

from leads t

left join leads_to_do d1 on t.lea_id = d1.ltd_lea_id and d1.ltd_sfdc_type = 'lead'

left join leads_to_do d2 on t.lea_id = d2.ltd_lea_id and d2.ltd_sfdc_type = 'product'

where t.lea_id=100

關閉sqlserver自增長模式插入。

set identity_insert [tablename] on

insert into xx

set identity_insert [tablename] off

SQLserver不同資料庫不同表之間的複製

1.將eems庫中的dec towninfo表中的資料 複製到oem庫的c towninfo中 c towninfo表事先存在 先要將表的主鍵設為自增長型別,且列出列名 set identity insert oem dbo c towninfo oninsert into oem dbo c to...

sql跨表更新資料

跨表更新資料是我們經常用的乙個操作,特整理一下 原始資料如下,首先是表結構 a dept的初始資料 a emp初始資料 跨表更新sql語句 語句功能,若a emp表中company和a dept中的company相等,更新a emp中deptid 具體寫法一 update e set e.depti...

Oracle不同表空間之間的資料遷移

將資料庫為testdb,使用者名為testuser中預設 users 表空間裡的資料遷移至表空間 newtablespace 1.用system使用者登陸testdb資料庫,建立directory testdir 並將讀 寫許可權授予testuser使用者 create or replace dir...