日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
視圖上定義sqlserver觸發(fā)器

sql server觸發(fā)器在SQL數(shù)據(jù)庫(kù)中非常重要,下面就將為您介紹在視圖上定義 INSTEAD OF UPDATE 觸發(fā)器的方法,希望對(duì)您更好學(xué)習(xí)sql server觸發(fā)器能有所幫助。

可在視圖上定義 INSTEAD OF UPDATE 觸發(fā)器以代替 UPDATE 語(yǔ)句的標(biāo)準(zhǔn)操作。通常,在視圖上定義 INSTEAD OF UPDATE 觸發(fā)器以便修改一個(gè)或多個(gè)基表中的數(shù)據(jù)。

引用帶有 INSTEAD OF UPDATE 觸發(fā)器的視圖的 UPDATE 語(yǔ)句必須為 SET 子句中引用的所有不可為空的視圖列提供值。該操作包括在基表中引用列的視圖列(該基表不能指定輸入值),如:

◆基表中的計(jì)算列。

◆IDENTITY INSERT 設(shè)置為 OFF 的基表中的標(biāo)識(shí)列。

◆具有 timestamp 數(shù)據(jù)類(lèi)型的基表列。

通常,當(dāng)引用表的 UPDATE 語(yǔ)句試圖設(shè)置計(jì)算列、標(biāo)識(shí)列或 timestamp 列的值時(shí)會(huì)產(chǎn)生錯(cuò)誤信息,因?yàn)檫@些列的值必須由 Microsoft? SQL Server? 決定。這些列必須包含在 UPDATE 語(yǔ)句中,以便滿足該行的 NOT NULL 需要。然而,如果 UPDATE 語(yǔ)句引用帶 INSTEAD OF UPDATE 觸發(fā)器的視圖,該視圖中定義的邏輯能夠回避這些列并避免錯(cuò)誤。為此,INSTEAD OF UPDATE 觸發(fā)器必須不試圖更新基表中相應(yīng)列的值。通過(guò)不將這些列包含在 UPDATE 語(yǔ)句的 SET 子句中即可達(dá)到此目的。在 inserted 表中處理記錄時(shí),計(jì)算列、標(biāo)識(shí)列或 timestamp 列可以包含虛值以滿足 NOT NULL 列的需要,但是 INSTEAD OF UPDATE 觸發(fā)器忽略這些列值并且由 SQL Server 設(shè)置正確的值。

由于 INSTEAD OF UPDATE 觸發(fā)器不必在未更新的 inserted 列中處理數(shù)據(jù),因此該解決方法起作用。在傳遞到 INSTEAD OF UPDATE 觸發(fā)器的 inserted 表中,SET 子句中指定的列遵從與 INSTEAD OF INSERT 觸發(fā)器中的 inserted 列相同的規(guī)則。對(duì)于在 SET 子句中未指定的列,inserted 表包含在發(fā)出 UPDATE 語(yǔ)句前已存在的值。sql server觸發(fā)器可以通過(guò)使用 IF UPDATED(column) 子句來(lái)測(cè)試特定的列是否已更新。

INSTEAD OF UPDATE 觸發(fā)器僅應(yīng)在 WHERE 子句搜索條件中使用為計(jì)算列、標(biāo)識(shí)列或 timestamp 列提供的值。

視圖上的 INSTEAD OF UPDATE 觸發(fā)器應(yīng)該用來(lái)處理為計(jì)算列、標(biāo)識(shí)列、timestamp 列或默認(rèn)列提供的更新值的邏輯與應(yīng)用于這些列類(lèi)型的插入值的邏輯相同。

說(shuō)明: 在含有用 UPDATE 操作定義的外鍵的表上,不能定義 INSTEAD OF UPDATE 觸發(fā)器。


網(wǎng)頁(yè)標(biāo)題:視圖上定義sqlserver觸發(fā)器
網(wǎng)站URL:http://m.5511xx.com/article/cccoheg.html