有时,在包含许多列的表中插入数据时,如果插入语句不应该失败,知道必须指定哪些列可能很有用。
我编写此查询是为了找出哪些列不可为空、标识、计算、时间戳以及没有默认值。
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'
是否还有任何其他属性应包含在此检查中?
语法的 BOL 文档
INSERT
有这样的说法column_list
在我看来,您的查询似乎涵盖了所有这些情况。