在數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程中,我們經(jīng)常會(huì)有這樣的情況下
1. 某個(gè)基礎(chǔ)表會(huì)被多個(gè)視圖或者存儲(chǔ)過(guò)程引用 2. 修改基礎(chǔ)表的時(shí)候,我們必須小心翼翼地,因?yàn)椴粫?huì)有任何提示告訴我們,如果繼續(xù)修改,會(huì)不會(huì)造成視圖或者存儲(chǔ)過(guò)程有問(wèn)題 3. 即便我們知道有問(wèn)題,我們也沒(méi)有辦法去讓視圖和存儲(chǔ)過(guò)程刷新得到表最新的信息 要解決這個(gè)問(wèn)題,我這篇文章來(lái)詳細(xì)講解一下有關(guān)的技術(shù) --第一步:切換當(dāng)前數(shù)據(jù)庫(kù)上下文為
--第二步:創(chuàng)建一個(gè)范例數(shù)據(jù)庫(kù)
--第三步:切換當(dāng)前數(shù)據(jù)庫(kù)上下文為
--第四步:創(chuàng)建一個(gè)范例表格,包含了三個(gè)字段
--第五步:創(chuàng)建一個(gè)視圖
--第六步:查看表和視圖的架構(gòu)信息
--此時(shí)會(huì)發(fā)現(xiàn)視圖三個(gè)字段與表的三個(gè)字段是一致的 圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 --第七步:假設(shè)我們需要對(duì)表的字段進(jìn)行修改,例如修改Address字段的長(zhǎng)度為256
--第八步:我們?cè)賮?lái)查看表和視圖的架構(gòu)信息
--此時(shí)會(huì)發(fā)現(xiàn),表中的Address已經(jīng)修改為了256長(zhǎng)度,而視圖仍然是50. --這種情況將導(dǎo)致針對(duì)視圖的查詢出現(xiàn)一些意外情況 --那么,怎么樣讓視圖的架構(gòu)信息得到刷新呢? 圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 --第九步:通過(guò)系統(tǒng)存儲(chǔ)過(guò)程刷新視圖
--第十步:我們?cè)賮?lái)查看表和視圖的架構(gòu)信息
--此時(shí)會(huì)發(fā)現(xiàn),視圖和表的架構(gòu)信息是一致的 圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 --第十一步:假設(shè)我們?yōu)榱吮苊庖晥D因?yàn)闆](méi)有刷新而出現(xiàn)問(wèn)題,希望限制TestTable的架構(gòu)修改。該怎么辦呢 --我們可以通過(guò)綁定架構(gòu)的選項(xiàng),將視圖綁定到表的架構(gòu)
--第十二步:此時(shí)如果再次嘗試修改TestTable就會(huì)得到錯(cuò)誤提示.因?yàn)樗呀?jīng)被一個(gè)視圖綁定了
圖片看不清楚?請(qǐng)點(diǎn)擊這里查看原圖(大圖)。 題外話: 如果想要刷新存儲(chǔ)過(guò)程或者函數(shù)等其他編程呢?請(qǐng)參考sp_refreshsqlmodule這個(gè)存儲(chǔ)過(guò)程 如果要自動(dòng)刷新所有的視圖或者存儲(chǔ)過(guò)程呢? --第十三步:生成刷新所有視圖的腳本
|
|
來(lái)自: hongshatang > 《數(shù)據(jù)庫(kù)》