如果删除表,现有DB2视图会发生什么?

时间:2009-03-13 11:17:52

标签: view db2 sql-drop

如果我们在现有DB2表上创建了一个视图,然后删除该表。视图会发生什么?

4 个答案:

答案 0 :(得分:1)

视图无效/无效。尝试从中进行选择将失败。

试一试:

create table TEST_TABLE (
TEST_COL INTEGER
);

INSERT INTO TEST_TABLE VALUES(1);

SELECT * FROM TEST_TABLE;

create view TEST_VIEW AS
SELECT * FROM TEST_TABLE;

SELECT * FROM TEST_VIEW;

DROP TABLE TEST_TABLE;

SELECT * FROM TEST_VIEW;

最后一个语句给出错误:

[IBM][CLI Driver][DB2/NT] SQL0575N  View or materialized query table
"TEST_VIEW" cannot be used because it has been marked inoperative.
SQLSTATE=51024

答案 1 :(得分:0)

当视图失效时,如上例所示,DB2将允许您重新创建该视图而不先删除它。这样就可以重新运行视图DDL文件(或者只是转储SYSCAT.VIEWS的TEXT列并执行它)。

答案 2 :(得分:0)

什么都没发生。只是不要使用该视图。您可以再次重新创建表格以便稍后再次使用该视图。

答案 3 :(得分:0)

它变得不起作用。 使用以下查询可以找到相同的信息:

SELECT viewscheama,viewname,valid FROM syscat.views

。 对于特定视图,如果"有效"列具有“Y'”之间的任何值。那么视图将无效。