각 테이블의 열 수를 반환하는 쿼리를 만들고 있지만 뷰를 제외하려고합니다.SQL : 뷰를 제외한 모든 테이블의 열 수를 카운트
SELECT COUNT(*), table_name
FROM INFORMATION_SCHEMA.COLUMNS
Group By table_name
어떤 제안 :
다음 작동하지만보기의 결과를 반환?
참고 : MSSQL 2005 +
각 테이블의 열 수를 반환하는 쿼리를 만들고 있지만 뷰를 제외하려고합니다.SQL : 뷰를 제외한 모든 테이블의 열 수를 카운트
SELECT COUNT(*), table_name
FROM INFORMATION_SCHEMA.COLUMNS
Group By table_name
어떤 제안 :
다음 작동하지만보기의 결과를 반환?
참고 : MSSQL 2005 +
이는 다음과 같이 SQL 2005 이상
SELECT
t.name,
count(c.name)
FROM
sys.tables t
inner join sys.columns c
ON t.object_id = c.object_id
group by t.name
테이블이 뷰인지 확인하기 위해 INFORMATION_SCHEMA.TABLES
에 가입하세요.
SELECT COUNT(col.column_name), tab.table_name
FROM INFORMATION_SCHEMA.tables tab
JOIN INFORMATION_SCHEMA.COLUMNS col ON col.table_name = tab.table_name
WHERE tab.table_type != 'VIEW'
GROUP BY 2
ORDER BY 2
각 GROUP BY 표현식에는 적어도 하나 이상의 열이 포함되어야합니다. 외부 참조. – Colin
뭔가를 가정
SELECT COUNT(col.column_name), col.table_name
FROM information_schema.columns col
JOIN information_schema.tables tbl
ON tbl.table_name = col.table_name
AND tbl.table_schema = col.table_schema
AND tbl.table_catalog = col.table_catalog
AND tbl.table_type <> 'VIEW'
GROUP BY col.table_name
'schema_name'열 이름이 잘못되었습니다. 'catalog_name'열 이름이 잘못되었습니다. – Colin
@ 콜린 : 고마워. 수정 됨 –
SELECT tab.table_name,COUNT(col.column_name)
FROM INFORMATION_SCHEMA.tables tab
JOIN INFORMATION_SCHEMA.COLUMNS col ON col.table_name = tab.table_name
WHERE tab.table_type != 'VIEW'
GROUP BY tab.table_name
ORDER BY tab.table_name
이 코드는 테이블 이름을 보여 주며 자신의 열은 그들 앞에서 계산합니다. 원하는 경우 스키마 이름을 추가 할 수 있습니다.
코드에 일부 기능 추가 –
어떤 데이터베이스가 있습니까? –
중복 http://stackoverflow.com/questions/1033726/getting-number-of-fields-in-a-database-with-an-sql-statement –