有这样一个例子。
CREATE TABLE T1 (a INT ,b INT) INSERT INTO dbo.T1 ( a, b ) VALUES ( 1, 2 ),(3,4) go CREATE VIEW V1 AS SELECT * FROM dbo.T1 GO DROP TABLE T1 ; GO CREATE TABLE T1 (c INT ,d INT) GO INSERT INTO dbo.T1 ( c, d ) VALUES ( 1, 2 ),(3,4)
然后再查询视图, 返回的栏位是如何呢?
a b
----------- -----------
1 2
3 4
这是因为虽然修改了表结构,但是视图里面的结构还没有刷新,在视图里面保存的列还是a,b 两列,所以就查出来还是 a,b 两列
SELECT name,column_id FROM sys.columns WHERE object_id = object_id(‘V1‘) name column_id --------------------------- ----------- a 1 b 2
PS:所以,如果修改了表,请留意相关视图是否正常,也要小心表结构尽量不要动
时间: 2024-11-08 08:51:59