SQL Server Table Not Using Default Value(SQL Server 表不使用默认值)
问题描述
我正在使用 SSIS 包填充表格.
I am populating a table using an SSIS package.
这个想法是,每当包上传到表时,它都会使用 getdate() 对值进行时间戳.
The idea is that whenever the package uploads to the table, it will timestamp the value using getdate().
当我打开它时,我的 DDL 看起来是这样的:
My DDL looks like this when I open it up:
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
注意:我没有输入alter语句,这就是我打开DDL时的样子.
Note: I did not type the alter statement, that's literally what it looks like when I open up the DDL.
为什么在我插入行时没有为 [ssis_ran_date] 填充默认值?它实际上只是保持为空.
Why is the default value not populating for [ssis_ran_date] when I insert rows? It literally just stays null.
推荐答案
如果您的 INSERT 语句为具有默认值的列指定 NULL,则将插入 NULL.
If your INSERT statement specifies NULL for a column with a default, then NULL will get inserted.
只有在 INSERT 中根本没有指定该列时才会使用默认值.
The default will only be used when that column is not specified in the INSERT at all.
这篇关于SQL Server 表不使用默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:SQL Server 表不使用默认值
基础教程推荐
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- 带有WHERE子句的LAG()函数 2022-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 带更新的 sqlite CTE 2022-01-01
