【发布时间】:2013-02-11 21:33:50
【问题描述】:
我创建了以下简单视图:
CREATE VIEW cs.MyTestPO AS
SELECT ttdpur401100.t_orno
, ttdpur401100.t_item
, ttcibd001100.t_dsca
FROM ttdpur401100
JOIN ttcibd001100 ON ttcibd001100.t_item = ttdpur401100.t_item
然后SELECT * FROM cs.MyTestPO 返回 276376 行
如果我自己运行 select 语句
SELECT ttdpur401100.t_orno
, ttdpur401100.t_item
, ttcibd001100.t_dsca
FROM ttdpur401100
JOIN ttcibd001100 ON ttcibd001100.t_item = ttdpur401100.t_item
它返回 277488 行
谁能说明为什么视图缺少 SELECT 语句返回的 1112 行。
【问题讨论】:
-
是否有可能在您从视图中选择数据之后,但在您从查询中选择之前添加了 1112 行?
-
视图中的 Select 和 Select 直接依次运行了几次,结果相同。
-
将它们放在一个事务中并在结果集上使用 DISTINCT 再次运行。我猜这个视图正在强制执行唯一性。
-
为什么主表中的重复项会产生结果?我对 tdpur401100 表中的主键进行了计数,没有重复。
-
一切都在
cs模式中吗?如果没有,是否有可能在cs和dbo架构之间重复某些表,从而查询不同的表?
标签: sql sql-server sql-server-2005 view