Eu quero calcular o número de colunas com restrição não nula em meu banco de dados. Então pensei em consultar a tabela sys.all_columns:
select * from sys.all_columns
O problema é que ele me fornece informações extras de que não preciso (colunas em tabelas definidas pelo sistema).
Então eu tenho que adicionar algum código SQL para determinar se alguma coluna pertence à tabela definida pelo usuário ou não . Qual é a melhor forma de proceder?
Faça uma junção interna entre
sys.columns
esys.tables
. A última tabela é a visualização do catálogo para as tabelas do usuário, portanto, a junçãoobject_id
deve fornecer as colunas correspondentes:Indo um passo adiante no que parece ser o seu resultado final, se você deseja obter todas as colunas anuláveis nas tabelas do usuário, esta consulta rápida deve funcionar: