Eu tenho centenas de tabelas de usuários e cada tabela tem muitas colunas. Sys.Columns está retornando 16000
colunas; considerando que INFORMAÇÕES_SCHEMA.COLUMNS está retornando cerca de 15,000
.
Pergunta : Por que as duas funções acima estão retornando contagens tão diferentes? Usando Sys.Columns
, como podemos obter as colunas de ONLY
todas as tabelas de usuários em um banco de dados?
SELECT COUNT(*) FROM sys.columns --16,000
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS --15,004
Se você fizer isso
sp_helptext 'INFORMATION_SCHEMA.COLUMNS'
, veráINFORMATION_SCHEMA.COLUMNS
junções e incluirá apenas colunas onde o objeto correspondente é do tipo 'U' ou 'V'.sys.columns
sys.objects
sys.colums
inclui tipos adicionais com a lista completa documentada como .Portanto, o seguinte deve retornar a mesma contagem
Use
o.type = 'U'
se você quiser apenas tabelas de usuários