原始需求如下:

有一个表T1

create table t1
(id int not null primary key
,v1 varchar(10)
) insert into t1 values(1,'aaa');
insert into t1 values(2,'bbb');

有一个表TS,用于记录T1中 每条记录的更新时间(触发器实现,此处略过)

create table ts
(id int not null primary key
,updatetime datetime
)
insert into ts values(1,getdate());
insert into ts values(2,getdate());

创建两个视图:

--视图1
create view view1 as
select a.*,b.updatetime
from t1 a left join ts b on a.id=b.id
--视图2
create view view2 as
select b.updatetime,a.*
from t1 a left join ts b on a.id=b.id

这样做是希望记录表t1更新的时间戳,同时当t1新增字段时视图会包含新的字段。相当于 视图 = t1.*+ts.updateime

问题1:t1新增字段后,视图不会自动新增字段

alter table t1 add v2 int not null default -1;

查看一下视图:

select * from view1;
select * from view2;

结果如下:

两个 视图中均没有新增的字段v2.

这个问题暂时用刷新视图的方法处理,是否有其它方式暂未找到。

  sp_refreshview view1

问题2:新增字段会造成视图与原始表的列错位。

仔细看上图中的第1个结果,updatetime并不是显示它的值getdate(),而是显示的view1中新增的字段v2的值。

而view2中不会有这个问题

SQLSERVER视图错位的解决办法的更多相关文章

  1. CSS鼠标悬停图片加边框效果,页面布局发生错位的解决办法

    CSS鼠标悬停图片加边框效果,页面布局发生错位的解决办法 .recomend-list{ width:1200px; a{ @extend %fl; margin-right: 30px; width ...

  2. datagrid rownumber行号与数据行显示错位的解决办法

    最近在使用datagrid控件,遇到问题多多. 其中一个就是datagrid在使用行编号的情况下,行编号与数据行出现错位的情况,如图:

  3. VS2017新建视图中文乱码解决办法

    问题:VS2017 ASP.NET Core 新建视频默认为ASNI编码格式 解决办法 1:直接将视图页面通过记事本打开,然后另存为UTF-8解决. 2:安装扩展TextTools解决视图文件编码问题 ...

  4. 【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法

    原因是使用的用户没有相关的查询权限导致 解决办法: grant select  any dictionary to 用户;    --这个权限比较大 这个权限是最低的要求,但是可以访问到v$相关视图 ...

  5. oracle 数据库备份、还原、和使用心得(表丢失、视图丢失的解决办法)

    一.oracle数据备份:exp 关键字     说明(默认值)                  关键字      说明(默认值) --------------------------------- ...

  6. sqlserver 目录名称无效解决办法

    问题描述: 1.sqlserver 打开表提示:目录名称无效 2.在执行sql语句时提示:在执行批处理时出现错误.错误消息为: 目录名无效 3.所有的数据库都存在1跟2的问题 问题分析: 1.操作系统 ...

  7. SqlServer数据库(可疑)的解决办法

    当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法, 打开数据库里的Sql 查询编辑器窗口,运行以下的命令. // 1.使用指定值强制重新配置:(1.0表示为真假) sp_configure ...

  8. Oracle视图编译错误解决办法

    因为新搭的环境,数据库是从另一个现成的环境导过来的,直接后台用exp和imp命令操作.但是新环境的Oracle数据库有问题,一些视图创建不了,导致用到这些视图的视图和存储过程也编译不了.后来手工重新编 ...

  9. sybase sql anywhere 5.0 安装后sybase central中无法打开视图等的解决办法

    无法打开的原因初步分析要用英文版的xp,后来在如下处发现问题,是sql anywhere的版本太旧了, 可能没有使用Unicode编码,设置一下如下选项可以解决问题.

随机推荐

  1. 【C/C++开发】字符串操作

    1)字符串操作 strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat(p, p1) 附加字符串  strncat(p, p1, n) 附加指 ...

  2. Spring 消息转换器和注解控制器

    目录 1.什么是消息转换器? 2.消息转换器结构:HttpMessageConverter 3.Spring 调用逻辑 3.1 HandlerMethodArgumentResolver 接口 和 H ...

  3. Error:(18, 51) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

    问题:主要是因为jdk版本不一样 解决: 方法一:List<String> list=new ArrayList<Stirng>(); 方法二:重新安装jdk8的版本(安装和配 ...

  4. 微信小程序常用控件汇总

    1.图片标签: <image src="/images/aaa.png"></image> 2.文本标签: <text>Hello</te ...

  5. webpack的配置 @3.6.0

    1.下载对应版本的webpack npm install webpack@3.6.0 -save --dev 2.新建webpack.config.js文件,目录结构↑ 3. >>webp ...

  6. R镜像源的切换

    如果是默认的R安装一般会很慢 install.packages(pkgs, lib, repos = getOption("repos"), contriburl = contri ...

  7. QT qml TreeView展示数据结构于界面

    Class  QAbstractItemModel: 使用QML的TreeView类来展示树状的结构,对应的是QT的Model/View模型.这个model是一个数据模型,要为TreeView提供一个 ...

  8. [转帖]CentOS 7 安装 GlusterFS

    CentOS 7 安装 GlusterFS https://www.cnblogs.com/jicki/p/5801712.html 改天测试一下 我一直没有搞这一块呢.   CentOS 7 Glu ...

  9. 剑指offer65:矩阵中的路径(二维数组,二分查找)

    1 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径.路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子.如果一条路径经过了矩 ...

  10. 随记sqlserver学习笔记

    create database libraryDBgouse libraryDBgo--读者信息表create table ReaderInfo( ReaderId int not null prim ...