CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

视图与表不同步问题

楼主cenyou(s)2006-06-03 03:00:00 在 MS-SQL Server / 基础类 提问

请大家帮我运行这个程序.  
   
  --   创建表   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

相关问题

关键词

得分解答快速导航

  • 帖主:cenyou

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo