第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在SQLServer 2005中更新一個(gè)語句中的兩個(gè)表?

如何在SQLServer 2005中更新一個(gè)語句中的兩個(gè)表?

江戶川亂折騰 2019-06-26 13:30:39
如何在SQLServer 2005中更新一個(gè)語句中的兩個(gè)表?我想一次更新兩張桌子。如何在SQLServer 2005中做到這一點(diǎn)?UPDATE    Table1,    Table2SET    Table1.LastName='DR. XXXXXX',    Table2.WAprrs='start,stop'FROM    Table1 T1,    Table2 T2WHERE    T1.id = T2.idAND    T1.id = '010008'
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

簡(jiǎn)短的回答是否定的。中輸入多個(gè)表時(shí),from子句,則只能在update關(guān)鍵詞。即使您確實(shí)編寫了一個(gè)“可更新”視圖(它只是一個(gè)遵循某些限制的視圖),這樣的更新也會(huì)失敗。以下是MSDN文檔的相關(guān)剪輯(重點(diǎn)是我的)。

更新(Transact-SQL)

表_或_view_name引用的視圖必須是可更新的和引用的準(zhǔn)確地說是一個(gè)基表在視圖的FROM子句中。有關(guān)可更新視圖的更多信息,請(qǐng)參見創(chuàng)建視圖(Transact-SQL)。

創(chuàng)建視圖(Transact-SQL)

只要下列條件為真,就可以通過視圖修改基礎(chǔ)基表的數(shù)據(jù):

  • 任何修改,包括UPDATE、INSERT和DELETE語句,都必須引用

    只有一個(gè)基表.

  • 視圖中要修改的列必須直接引用表列中的基礎(chǔ)數(shù)據(jù)。不能以任何其他方式派生列,例如通過下列方法:
    • 一個(gè)聚合函數(shù):avg、count、sum、min、max、group、stdev、STDEVP、VAR和VARP。
    • 一種計(jì)算。不能從使用其他列的表達(dá)式中計(jì)算列。使用SET運(yùn)算符UNION、UNIOALL、CROSSJOIN、OPTION和INTERSECT形成的列構(gòu)成計(jì)算,而且也不可更新。
  • 被修改的列不受GROUPBY子句、有子句或DISTIVE子句的影響。
  • 在視圖的SELECT_語句和WITH CHECKOPTION子句中沒有使用TOP。

不過,老實(shí)說,您應(yīng)該考慮在事務(wù)中使用兩個(gè)不同的SQL語句,如LBushkin的示例所示。

最新情況:我最初關(guān)于可以在可更新視圖中更新多個(gè)表的斷言是錯(cuò)誤的。在SQLServer 2005&2012上,它將生成以下錯(cuò)誤。我已更正了我的答復(fù),以反映這一點(diǎn)。

Msg 4405, Level 16, State 1, Line 1

View or function 'updatable_view' is not updatable because the modification affects multiple base tables.


查看完整回答
反對(duì) 回復(fù) 2019-06-26
  • 3 回答
  • 0 關(guān)注
  • 870 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)