Às vezes, ao inserir dados em uma tabela com muitas colunas, pode ser útil saber quais colunas devem ser especificadas para que a instrução de inserção não falhe.
Eu escrevi esta consulta para descobrir quais colunas não são anuláveis, identidade, computadas, timestamp e não possuem valor padrão.
select *
from sys.columns
where object_id = object_id('<table>') and
is_nullable = 0 and
is_identity = 0 and
is_computed = 0 and
default_object_id = 0 and
type_name(system_type_id) <> 'timestamp'
Existem outras propriedades que devem ser incluídas nesta verificação?
A documentação BOL para a
INSERT
gramática tem isso a dizer sobrecolumn_list
Parece que sua consulta abrange todos esses casos para mim.