如何忽略SQL插入语句的默认值?

时间:2018-10-21 07:11:42

标签: sql sql-server sql-server-ce

我已经为某些列设置了默认值。

CREATE TABLE [dbo].[TEST]
(
    [id] [INT] NULL,
    [fname] [VARCHAR](50) NULL,
    [lname] [VARCHAR](50) NULL,
    [default1] [VARCHAR](50) NULL,
    [default2] [VARCHAR](50) NULL,
    [default3] [VARCHAR](50) NULL
) ON [PRIMARY]

ALTER TABLE [dbo].[TEST] 
    ADD CONSTRAINT [DF_TEST_job] DEFAULT ('test1') FOR [default1]

ALTER TABLE [dbo].[TEST] 
    ADD CONSTRAINT [DF_TEST_default2] DEFAULT ('test2') FOR [default2]

ALTER TABLE [dbo].[TEST] 
    ADD CONSTRAINT [DF_TEST_default3] DEFAULT ('test3') FOR [default3]

现在,我有时会在我的INSERT语句中将所有具有默认值的列设置为null。

我知道,如果我为INSERT中的列提供值,则它们的默认值将被忽略。但是我正在寻找一种方法来在某些插入中设置默认值。 我知道这可能是不可能的,但是我想学习它的方式(如果有的话。)

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我不完全了解您要在这里问的问题。...

如果您提供列的值-即使它是NULL,在您的INSERT语句中,SQL Server也会使用提供的值,并跳过列上定义的任何默认值。

因此,仅提供NULL,基本上就是您的标题所要求的:忽略列的默认值。...列的默认值是仅使用如果您完全从您的INSERT语句中忽略该列。...