sql server中如何修改視圖中的數據?
阿新 • • 發佈:2019-03-12
結果 select http com bubuko state -- span 調用
sql server中如何修改視圖中的數據?
我做個測試,視圖的數據有標記字段時,如果是這種方式(0 as FlagState),是無法修改的
--創建視圖語句 --- create view V_EdsProd_1 as select a.Uid ProdId, a.Code ProdCode,a.Name ProdName,b.Name ProdUnit,0 as FlagState from EdsProd a left join EdsProdUnit b on a.ProdUnit = b.Uid where a.DownloadFlag=0 and a.State=9 go
查詢視圖的數據
--查詢視圖的數據--- select * from V_EdsProd_1
假如,我們要修改視圖的數據(33921,33922)的狀態為1
--修改視圖數據的語法-- update V_EdsProd_1 set FlagState=1 where ProdId in(33921,33922);
報錯如下:
那麽,我們將上面創建的視圖,重新定義一下(0 as FlagState)把這個0改成數據表中存在的字段
--刪除視圖的語法-- drop view V_EdsProd_1; --創建視圖語句 ---create view V_EdsProd_1 as select a.Uid ProdId, a.Code ProdCode,a.Name ProdName,a.DownloadFlag as FlagState from EdsProd a left join EdsProdUnit b on a.ProdUnit = b.Uid where a.DownloadFlag=0 and a.State=9 go
再次執行修改語句,結果如下:
總結:
數據庫的視圖的數據如果想要修改,必須保證標記字段是持久化存在的(得有這個字段),才能修改;反之,
如果只是用“0或‘ ‘ AS FlagState” 這種,只是一個引用,下次調用視圖還是會被初始化,無法修改
sql server中如何修改視圖中的數據?