1. sql里刪除 視圖和索引 會對 表 產生 怎樣的影響
視圖的作用非常類似你在庫中建立的實體表,如果你在你的程序中,或者SQL語句中,使用了視圖,則系統提示你『找不到該視圖』。
索引最主要的用途是提高檢索數據的速度,如果你的表欄位很少,並且數據在1-5000行之內,你刪除了索引是感覺不到有啥變化,如果你的數據上了10W條以上,有無索引的速度就非常明顯了。
2. 資料庫簡單問題:為什麼刪除基本表的時候視圖不會被刪除高手詳細解答下。。
視圖和表沒有根本的關系,視圖相當於一個SQl語句,刪除表,視圖肯定是沒有被刪除!
3. 在SQL語言中,若是一個基本表的定義被刪除,那麼以下哪些也會自動刪除
數據和此表的索引將不復存在了。
視圖則不會自動更新。
視圖是一個或者幾個表構成的臨時表吧。只能說視圖失效了,但是不會刪除
4. 在SQL資料庫裏手動刪除表格或者修改表格和用語句修改數據會有記錄的嗎
如果有啟用資料庫日誌,都會有記錄存在。系統日誌默認都是啟用的,除非你強制給改了。
5. vfp中的視圖刪除對原數據有影響嗎
沒有有影響。
視圖是從表中復制出來的一份復印版,有數據重組和篩選的等於是抄一份新版文檔,增刪改視圖在原理上說是不能影響到數據原件的。
從視圖上獲得記錄的關鍵字到原來的表上找到真身去做刪除動作,然後再重新抄出一份視圖。vfp9對之前版本的作了一點修改,可以從視圖中刪除數據,並影響到原表,標準的sql是沒有的,這是vfp自己的擴展功能。
6. 從視圖里刪除數據,表裡的數據也刪除了嗎(資料庫:sql server2000)(資料庫,或者。net高手回答...)
在資料庫中只存放VIEW的定義,不存放VIEW的數據,數據都存放在TALBE中.所以刪除VIEW只刪除了定義,數據仍然在TABLE中.
解決你的問題可以直接刪除表,或者給VIEW寫個DELETE的觸發器.
7. SQL在視圖刪除記錄,相應的表的記錄會刪掉嗎
會的,因為視圖只是保存的結構,在上面的操作事實上都是對基礎表的操作。
所以應慎重 .
你可以自己創建測試,來測試驗證一下
8. sql問題刪除視圖中的數據,表中的數據會刪除嗎
如果你那個視圖,是 單表的, 沒寫 觸發器的。
那麼 如果 刪除視圖中的數據 成功了,那麼 表中的數據 就被刪除了。
如果那個視圖, 寫了個 INSTEAD OF 觸發器. 但是裡面沒有任何刪除的動作。
那麼 可能你 DELETE FROM 視圖, 最後表的數據,一點也沒變化, 也是可以的。
1> CREATE VIEW v_main_sub AS
2> SELECT
3> test_main.id AS main_id,
4> test_main.value AS main_value,
5> test_sub.id AS sub_id,
6> test_sub.value AS sub_value
7> FROM
8> test_main, test_sub
9> WHERE
10> test_main.id = test_sub.main_id;
11> go
1> SELECT * FROM v_main_sub;
2> go
main_id main_value sub_id sub_value
----------- ---------- ----------- ----------
1 ONE 1 ONEONE
2 TWO 2 TWOTWO
(2 行受影響)
1> UPDATE v_main_sub
2> SET main_value='ONX'
3> WHERE main_id = 1;
4> go
(1 行受影響)
1> UPDATE v_main_sub
2> SET sub_value='ONXONX'
3> WHERE main_id = 1;
4> go
(1 行受影響)
1> DELETE FROM v_main_sub WHERE main_id = 1;
2> go
消息 4405,級別 16,狀態 1,伺服器 GMJ-PC\SQLEXPRESS,第 1 行
視圖或函數 'v_main_sub' 不可更新,因為修改會影響多個基表。
1> CREATE TRIGGER v_main_sub_trigger
2> ON v_main_sub
3> INSTEAD OF DELETE
4> AS
5> DECLARE
6> @main_id INT,
7> @sub_id INT;
8> BEGIN
9> SELECT @main_id=main_id, @sub_id=sub_id FROM deleted;
10>
11>
12> PRINT(@main_id);
13> PRINT(@sub_id);
14> END;
15> go
1> DELETE FROM v_main_sub WHERE main_id = 1;
2> go
1
1
(1 行受影響)
1> DELETE FROM v_main_sub WHERE sub_id = 1;
2> go
1
1
(1 行受影響)
對於多表關聯的視圖, 刪除的時候,需要人為的去判斷
例如當 主表 和 子表,都只有一條記錄的情況下。
無法判斷 本次刪除, 是要刪除掉一個子表的記錄,留下主表的。
還是 主表 子表的數據,一同刪除。
9. 向SQL視圖中「添加、刪除、修改」會影響基表嗎
當然會影響到基表。
視圖能對查詢出來的記錄進行修改,並將修改後的數據回送到源表中。
如果是在vfp中,只要在視圖設計器的「更新條件」選項卡中選中「發送SQL更新」,就可將修改後的數據回送到源表中。否則,數據不回送。
10. sql 刪除視圖中數據,為什麼兩個基表的數據都刪除
視圖是不能夠執行刪除操作的。可能是你操作錯了