Проблема с ограничением по умолчанию "со значениями" в SQL Server - PullRequest
0 голосов
/ 03 сентября 2018

Я узнал, что в Sql Server у нас есть WITH VALUES, который устанавливает данные в столбцах NULL с указанными значениями внутри ограничения по умолчанию. Но мой запрос не устанавливает значения в столбце, в котором уже есть NULL, даже когда я использовал WITH VALUES, Пожалуйста, исправьте запрос, если я ошибаюсь. мой запрос

GO
CREATE TABLE [dbo].[DefaultTest]
(
    [id] [int] NULL
) 
GO
INSERT INTO [dbo].[DefaultTest]
SELECT NULL
GO
ALTER TABLE [dbo].[DefaultTest] 
ADD  CONSTRAINT [con_Test]  DEFAULT 1 FOR [id]
WITH VALUES
GO
SELECT * FROM [DefaultTest]
GO
DROP TABLE [DefaultTest]

После выполнения запроса я заметил, что столбец по-прежнему содержит только NULL вместо 1.

1 Ответ

0 голосов
/ 03 сентября 2018

* MSDN 1002 *

[WITH VALUES] используется при добавлении нового столбца, и он должен иметь некоторое значение. Если вы не добавляете новый столбец с помощью оператора [ALTER], опция [WITH VALUES] будет игнорироваться.

Если это используется, когда связанный столбец также не добавляется, это не имеет никакого эффекта.

...