当前位置:首页 » 编程语言 » 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