我想摆脱不需要的删除,没有where子句,并且在通过它们的过程中,我遇到了一些我无法理解的事情。
从视图中选择会产生64895个结果。但是,从定义中提取查询并运行它会产生863855结果。视图未编入索引,我的登录名具有sysadmin权限。我想也许我错过了一些东西,而且查询的结果却截然不同,但事实并非如此。除此之外,还没有通过where子句进行任何过滤。
有人可以告诉我为什么这些计数不匹配吗?
下面是T-SQL的一点点。
--Physical Table
SELECT COUNT(1)
FROM PhysicalTable
-- rowcount 863855
--View
SELECT COUNT(1)
FROM vw_PhysicalTable;
-- rowcount 64895
--View Definition
CREATE VIEW vw_PhysicalTable
AS
SELECT PhysicalTable.[Column 0]
,PhysicalTable.[Column 1]
,PhysicalTable.[Column 2]
,PhysicalTable.[Column 3]
,PhysicalTable.[Column 4]
,PhysicalTable.[Column 5]
,PhysicalTable.[Column 6]
,PhysicalTable.[Column 7]
FROM PhysicalTable;
GO
--Table Definition
CREATE TABLE PhysicalTable
(
[Column 0] [NVARCHAR](100) NULL
,[Column 1] [NVARCHAR](100) NULL
,[Column 2] [NVARCHAR](100) NULL
,[Column 3] [NVARCHAR](100) NULL
,[Column 4] [NVARCHAR](100) NULL
,[Column 5] [NVARCHAR](100) NULL
,[Column 6] [NVARCHAR](100) NULL
,[Column 7] [NVARCHAR](100) NULL
,[Column 8] [NVARCHAR](100) NULL
,[Column 9] [NVARCHAR](100) NULL
,[Column 10] [NVARCHAR](100) NULL
,[Column 11] [NVARCHAR](100) NULL
,[Column 12] [NVARCHAR](100) NULL
,[Column 13] [NVARCHAR](100) NULL
,[Column 14] [NVARCHAR](100) NULL
,[Column 15] [NVARCHAR](100) NULL
,[Column 16] [NVARCHAR](100) NULL
,[Column 17] [NVARCHAR](100) NULL
,[Column 18] [NVARCHAR](100) NULL
,[Column 19] [NVARCHAR](100) NULL
,[Column 20] [NVARCHAR](100) NULL
,[Column 21] [NVARCHAR](100) NULL
,[Column 22] [NVARCHAR](100) NULL
,[Column 23] [NVARCHAR](100) NULL
,[Column 24] [NVARCHAR](100) NULL
,[Column 25] [NVARCHAR](100) NULL
,SomeTime [DATETIME] NULL
,SomeSID [BIGINT] IDENTITY(1, 1)
NOT NULL
,SomeCode [NVARCHAR](100) NULL
,CONSTRAINT [PhysicalTable] PRIMARY KEY CLUSTERED ( SomeSID ASC )
WITH ( PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90 ) ON [PRIMARY]
)
ON [PRIMARY];
答案 0 :(得分:1)
这最终成了一个简单的问题。表名不明确,存在于多个模式中。 DOH