當前位置:首頁 » 編程語言 » sql視圖可以執行刪除命令嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql視圖可以執行刪除命令嗎

發布時間: 2023-03-30 16:18:31

1. sql問題刪除視圖中的數據,表中的數據會刪除嗎

如果你那個視圖,是 單表的, 沒寫 觸發器的。x0dx0ax0dx0a那麼 如果 刪除視圖中的數據 成功了,那麼 表中的數據 就被刪除了。 x0dx0ax0dx0a如果那個視圖, 寫了個 INSTEAD OF 觸發器. 但是裡面沒有任何刪除的動作。x0dx0a那麼 可能你 DELETE FROM 視圖, 最後表的數據,一點也沒變化, 也是可以的。x0dx0ax0dx0a1> CREATE VIEW v_main_sub ASx0dx0a2> SELECTx0dx0a3> test_main.id AS main_id,x0dx0a4> test_main.value AS main_value,x0dx0a5> test_sub.id AS sub_id,x0dx0a6> test_sub.value AS sub_valuex0dx0a7> FROMx0dx0a8> test_main, test_subx0dx0a9> WHEREx0dx0a10> test_main.id = test_sub.main_id;x0dx0a11> gox0dx0ax0dx0a1> SELECT * FROM v_main_sub;x0dx0a2> gox0dx0amain_id main_value sub_id sub_valuex0dx0a----------- ---------- ----------- ----------x0dx0a 1 ONE 1 ONEONEx0dx0a 2 TWO 2 TWOTWOx0dx0ax0dx0a(2 行受影響)x0dx0ax0dx0a1> UPDATE v_main_subx0dx0a2> SET main_value='ONX'x0dx0a3> WHERE main_id = 1;x0dx0a4> gox0dx0ax0dx0a(1 行受影響)x0dx0ax0dx0a1> UPDATE v_main_subx0dx0a2> SET sub_value='ONXONX'x0dx0a3> WHERE main_id = 1;x0dx0a4> gox0dx0ax0dx0a(1 行受影響)x0dx0ax0dx0a1> DELETE FROM v_main_sub WHERE main_id = 1;x0dx0a2> gox0dx0a消息 4405,級別 16,狀態 1,伺服器 GMJ-PC\SQLEXPRESS,第 1 行x0dx0a視圖或函數 'v_main_sub不可更新,因為修改會影響多個基表。x0dx0ax0dx0a1> CREATE TRIGGER v_main_sub_triggerx0dx0a2> ON v_main_subx0dx0a3> INSTEAD OF DELETEx0dx0a4> ASx0dx0a5> DECLAREx0dx0a6> @main_id INT,x0dx0a7> @sub_id INT;x0dx0a8> BEGINx0dx0a9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;x0dx0a10>x0dx0a11>x0dx0a12> PRINT(@main_id);x0dx0a13> PRINT(@sub_id);x0dx0a14> END;x0dx0a15> gox0dx0ax0dx0a1> DELETE FROM v_main_sub WHERE main_id = 1;x0dx0a2> gox0dx0a1x0dx0a1x0dx0ax0dx0a(1 行受影響)x0dx0a1> DELETE FROM v_main_sub WHERE sub_id = 1;x0dx0a2> gox0dx0a1x0dx0a1x0dx0ax0dx0a(1 行受影響)x0dx0ax0dx0a對於多表關聯的視圖, 刪除的時候,需要人為的去判斷x0dx0a例如當 主表 和 子表,都只有一條記錄的情況下。x0dx0a無法判斷 本次刪除, 是要刪除掉一個子表的記錄,留下主表的。x0dx0a還是 主表 子表的數據,一同刪除。

2. 在SQL語言中,刪除一個視圖的命令是

DROP VIEW 視圖名字

3. sql語言中刪除一個視圖的命令是

sql語言刪除一個視圖的命令是: drop view 視圖名 ;
視圖差不多類似一個別名,並不另外佔用空間,非必要盡量不要刪除吧,如果能查詢順手一點也是好的。

4. SQL中視圖的創建。修改,刪除

  • 創建視圖

CREATE [OR REPLACE] VIEW 視圖名(列1,列2...)

AS SELECT (列1,列2...)

FROM ;

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 修改視圖

CREATE OR REPLACE VIEW 視圖名 AS SELECT [ ] FROM [ ];

[WITH [CASCADED|LOCAL] CHECK OPTION]

  • 刪除視圖

drop view 視圖名稱

(4)sql視圖可以執行刪除命令嗎擴展閱讀:

  • 查看視圖

show tables;

desc 視圖名

  • 查看視圖定義

show create view 視圖名稱G

  • 通過視圖變更數據

insert into 視圖名

update 視圖名

[WITH [CASCADED|LOCAL] CHECK OPTION] 決定了是否允許更新數據記錄不再滿足視圖的條件。

local只要滿足本視圖的條件就可以更新

cascaded則必須滿足所有針對該視圖的所有視圖的條件才可以更新,默認是cascaded。

為了防止通過視圖修改導致數據無故丟失,建議加上WITH CHECK OPTION

參考資料來源:網路-SQL語句

5. 在sql中刪除視圖用什麼命令

可以在對象資源管理器中找到要刪除的視圖,右鍵刪除,也可以用命令刪除,命令如下:
drop view 視圖名
如有多個視圖要刪除,可在視圖名後面後逗號隔開即可。

6. SQL中視圖的創建。修改,刪除

1、創建視圖

CREATE [OR REPLACE] VIEW 視圖名(列1,列2...)

AS SELECT (列1,列2...)

FROM ...;

[WITH [CASCADED|LOCAL] CHECK OPTION]

(6)sql視圖可以執行刪除命令嗎擴展閱讀:

SQL語言基本上獨立於資料庫本身、使用的機器、網路、操作系統,基於SQL的DBMS產品可以運行在從個人機、工作站到基於區域網、小型機和大型機的各種計算機系統上,具有良好的可移植性。

可以看出標准化的工作是很有意義的。早在1987年就有些有識之士預測SQL的標准化是「一場革命」,是「關系資料庫管理系統的轉折點」。

資料庫和各種產品都使用SQL作為共同的數據存取語言和標準的介面,使不同資料庫系統之間的互操作有了共同的基礎,進而實現異構機、各種操作環境的共享與移植。

參考資料:網路-SQL