Я понимаю, что при добавлении столбца в таблицу, содержащую данные на сервере SQL, столбец должен иметь параметр NULL или значение по умолчанию. В противном случае, чем SQL Server дополнил бы новые строки?
Однако я не понимаю, почему я не могу добавить столбец NOT NULL в пустую таблицу. Я пробовал это на двух экземплярах SQL 2008 и одном экземпляре SQL 2005 без проблем. Однако эта проблема возникает у клиента с SQL 2000. Относится ли это к SQL 2000 или это опция, которую вы можете отключить. Будем надеяться, что это вариант.
Select @@Version
Microsoft SQL Server 2000 — 8.00.760 (Intel X86) 17 декабря 2002 г. 14:22:05 Copyright (c) Microsoft Corporation Developer Edition 1988–2003 для Windows NT 5.1 (сборка 2600: пакет обновления 3)
Select count(*) from actinv
0
ALTER TABLE [ActInv] ADD [BATCHNUMBER] NVARCHAR(50) NOT NULL
Сообщение 4901, уровень 16, состояние 1, строка 1 ALTER TABLE позволяет добавлять только столбцы, которые могут содержать значения NULL или иметь указанное определение DEFAULT. Столбец «BATCHNUMBER» не может быть добавлен в таблицу «ActInv», поскольку он не допускает пустых значений и не указывает определение по умолчанию.