Как я могу игнорировать значение по умолчанию для оператора вставки SQL? - PullRequest
0 голосов
/ 21 октября 2018

Я уже установил значение по умолчанию для некоторых моих столбцов.

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]

Теперь я собираюсь установить для всех столбцов со значениями по умолчанию значение NULL в моем INSERTзаявление иногда.

Я знаю, что если я предоставлю значения для столбцов в INSERT, их значения по умолчанию будут игнорироваться.Но я ищу способ установить значения по умолчанию на некоторых вставках.Я знаю, что это может быть невозможно, но я хочу научиться этому (если есть.

Спасибо за помощь.

1 Ответ

0 голосов
/ 21 октября 2018

Я не совсем понимаю, что вы пытаетесь спросить здесь ...

Если вы предоставите значение для столбца - даже если оно NULL, вваш оператор INSERT, тогда SQL Server будет использовать с предоставленным значением и пропустить любое значение по умолчанию, определенное в столбце.

Таким образом, просто предоставив NULL, вы в основном делаете то, что просит ваш заголовок: игнорируйте значение по умолчанию для столбца .... значение по умолчанию для столбца используется только если вы опустите этот столбец полностью из вашего INSERT заявления ....

...