sqlserver视图表 新增记录后 视图表查询不到

KeithRong 2018-07-31 12:24:26

如图所示,我执行了insert语句,基表里可以查询到,但视图表无法查询到,这是为什么?
还是说视图表不能执行添加操作的,这也不科学啊。
ps:ccusdefine1是priuserdefnvc1的别名
...全文
867 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2018-07-31
  • 打赏
  • 举报
回复
把视图的定义sql贴出来再说吧
吉普赛的歌 版主 2018-07-31
  • 打赏
  • 举报
回复
查看视图的定义:
吉普赛的歌 版主 2018-07-31
  • 打赏
  • 举报
回复
不想看那么多杂乱无章的东西了。
化繁为简吧。
弄一个简单的, 类似的案例, 你自己看吧:
USE tempdb
GO
IF OBJECT_ID('t1') IS NOT NULL DROP TABLE t1
IF OBJECT_ID('t2') IS NOT NULL DROP TABLE t2
IF OBJECT_ID('view_t') IS NOT NULL DROP VIEW view_t
GO
CREATE TABLE t1(
t1Id INT PRIMARY KEY,
t1Name NVARCHAR(10)
)
CREATE TABLE t2(
t2Id INT PRIMARY KEY,
t1Id INT,
t2Name NVARCHAR(10)
)
GO
INSERT INTO t1 (t1Id,t1Name)VALUES(1,'t1a')
INSERT INTO t2 (t2Id,t1Id,t2Name) VALUES (1,1,'t2a')
INSERT INTO t2 (t2Id,t1Id,t2Name) VALUES (2,1,'t2b')
GO
CREATE VIEW view_t
AS
SELECT t1.t1Id
,t1.t1Name
,t2.t2Id
,t2.t2Name
FROM t1 INNER JOIN t2 ON t1.t1Id=t2.t1Id
GO
SELECT * FROM view_t
/*
t1Id t1Name t2Id t2Name
----------- ---------- ----------- ----------
1 t1a 1 t2a
1 t1a 2 t2b
*/

--t1 表再插入一条数据
INSERT INTO t1 (t1Id,t1Name)VALUES(2,'t1b')
--再来看视图, 还是老样子, 条数没有增长
--因为 t2表 与 t1表 没有对应的记录
SELECT * FROM view_t
/*
t1Id t1Name t2Id t2Name
----------- ---------- ----------- ----------
1 t1a 1 t2a
1 t1a 2 t2b
*/
KeithRong 2018-07-31
  • 打赏
  • 举报
回复


来了,插入语句正常执行,但是视图表查询不到记录,后面是视图语句。
我不知道怎么看视图语句,以前没学过,希望稍稍给我解释一下子,谢谢!
二月十六 版主 2018-07-31
  • 打赏
  • 举报
回复
是不是insert的时候没有把所有关联表的数据都插入,只插入了一张表的?
最好把视图语句和insert 语句都发上来

34,836

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧