我知道这是我的连接错误,但不知道为什么我得到多行和错误的行数?
我的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而且它只有一个人表? 查询的前半部分准确地返回64个具有People_Id列的表。
请帮忙。
谢谢
答案 0 :(得分:1)
也许你的意思是......
SELECT PIT.Table_Name, Max(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
GROUP BY PIT.Table_Name
我假设你想要最大行,因为索引可能正在构建或需要更新..而且这里的rowcount并不总是100%准确。