SQL Server表未使用默认值

Lun*_*Box 2 t-sql sql-server

我正在使用SSIS包填充表.

这个想法是,每当包上传到表时,它将使用时间戳值getdate().

当我打开它时,我的DDL看起来像这样:

CREATE TABLE [REPORTING].[post_ssis_table_1](
    [validation_key] [int] IDENTITY(1,1) NOT NULL,
    [ssis_ran_date] [datetime] NULL,
    [server_name] [varchar](255) NULL,
    [data_base] [varchar](255) NULL,
--A bunch of other irrelevant columns
    [success_status] [varchar](255) NULL,
    [success_criteria] [varchar](255) NULL,
PRIMARY KEY CLUSTERED 
(
    [validation_key] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [REPORTING].[post_ssis_tbl_1] ADD  DEFAULT (getdate()) FOR [ssis_ran_date]
GO
Run Code Online (Sandbox Code Playgroud)

注意:我没有输入alter语句,这就是我打开DDL时的样子.

当我插入行时,为什么没有为[ssis_ran_date]填充默认值?它实际上只是保持为空.

Tab*_*man 6

如果INSERT语句为具有默认值的列指定NULL,则将插入NULL.

只有在INSERT中未指定该列时才会使用默认值.