我已经为某些列设置了默认值。
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
中的列提供值,则它们的默认值将被忽略。但是我正在寻找一种方法来在某些插入中设置默认值。
我知道这可能是不可能的,但是我想学习它的方式(如果有的话。)
感谢您的帮助。
答案 0 :(得分:1)
我不完全了解您要在这里问的问题。...
如果您提供列的值-即使它是NULL
,在您的INSERT
语句中,SQL Server也会使用提供的值,并跳过列上定义的任何默认值。
因此,仅提供NULL
,基本上就是您的标题所要求的:忽略列的默认值。...列的默认值是仅使用如果您完全从您的INSERT
语句中忽略该列。...