视图与表不同步问题
请大家帮我运行这个程序.
-- 创建表 TABLE1 --
CREATE TABLE [dbo].[TABLE1] (
[a] [char] (10) NULL ,
[b] [char] (10) NULL
) ON [PRIMARY]
GO
-- 向表 TABLE1 加入数据 --
insert into TABLE1 (a,b) values ('a','b')
go
-- 创建视图 VIEW1 --
CREATE VIEW dbo.VIEW1
AS
SELECT *
FROM dbo.TABLE1
go
-- 修改tabel1 , 将a列排在b列后面 , 在企业管理器中用手工操作也可以 --
CREATE TABLE dbo.Tmp_TABLE1
(
b char(10) NULL,
a char(10) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TABLE1)
EXEC('INSERT INTO dbo.Tmp_TABLE1 (b, a)
SELECT b, a FROM dbo.TABLE1 TABLOCKX')
GO
DROP TABLE dbo.TABLE1
GO
EXECUTE sp_rename N'dbo.Tmp_TABLE1', N'TABLE1', 'OBJECT'
GO
-- 查询视图 VIEW1 中的内容 --
select * from VIEW1;select a,b from table1
--此时 VIEW1 中数据的内容与TABLE1内容不同,请问这是什么原因呢 --
问题点数:20、回复次数:1Top
1 楼paoluo(一天到晚游泳的鱼)回复于 2006-06-03 08:23:05 得分 0
-- 创建表 TABLE1 --
CREATE TABLE [dbo].[TABLE1] (
[a] [char] (10) NULL ,
[b] [char] (10) NULL
) ON [PRIMARY]
GO
-- 向表 TABLE1 加入数据 --
insert into TABLE1 (a,b) values ('a','b')
go
-- 创建视图 VIEW1 --
CREATE VIEW dbo.VIEW1
AS
SELECT *
FROM dbo.TABLE1
go
-- 修改tabel1 , 将a列排在b列后面 , 在企业管理器中用手工操作也可以 --
CREATE TABLE dbo.Tmp_TABLE1
(
b char(10) NULL,
a char(10) NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TABLE1)
EXEC('INSERT INTO dbo.Tmp_TABLE1 (b, a)
SELECT b, a FROM dbo.TABLE1 TABLOCKX')
GO
DROP TABLE dbo.TABLE1
GO
EXECUTE sp_rename N'dbo.Tmp_TABLE1', N'TABLE1', 'OBJECT'
GO
EXEC sp_refreshview [VIEW1] --加上這句,刷新下視圖
GO
-- 查询视图 VIEW1 中的内容 --
select * from VIEW1;select a,b from table1
GO
Drop VIEW VIEW1
Drop TABLE dbo.TABLE1Top




