我知道这是我与连接的错误,但不知道为什么我得到多行和错误的行数?双连接导致重复的记录和不正确的行数
我的TSQL:
DECLARE @PeopleIDTables TABLE (Column_Name varchar(500) NULL, Table_Name varchar(500) NULL)
INSERT INTO @PeopleIDTables
SELECT COLUMN_NAME + ',', TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE 'People_ID'
ORDER BY TABLE_NAME
--SELECT * FROM @PeopleIDTables
SELECT PIT.Table_Name, I.rows NumberRows
FROM @PeopleIDTables PIT
JOIN sys.tables T ON PIT.Table_Name = T.name
JOIN sys.sysindexes I ON T.object_id = I.id
这里是我的结果摘录:
PEOPLE 770438
PEOPLE 770438
PEOPLE 770438
PEOPLE 770438
PEOPLE 770438
PEOPLE 770438
PEOPLE 770438
PEOPLE 0
时候其实有这样的开发系统上只有一个DB,它只有一个人表? 查询的前半部分准确返回具有People_Id列的64个表。
请帮忙。
谢谢
我要猜测至少“PEOPLE”表有多个索引。而且你在桌面上有一对多的索引,导致比我想的更多的记录。 “[对于当前数据库中的每个索引和表都包含一行,此视图不支持XML索引,此视图中不完全支持分区表和索引;请改为使用sys.indexes目录视图。](http:/ /msdn.microsoft.com/en-us/library/ms190283.aspx)“ – xQbert 2014-09-04 18:53:24
是多个索引....对不起,我没想过要先检查... DOH! – GPGVM 2014-09-04 19:02:23