2017-01-04 4 views
0

У меня очень сложная таблица сервера SQL Server (более 200 столбцов), и я хочу вставить новые строки вручную. Моя проблема в том, что я хочу вручную вставить только 3 столбца, а остальные должны быть по умолчанию. Есть ли способ, чтобы смешатьВставить значения и значения по умолчанию для всех остальных столбцов

INSERT INTO [my_table] DEFAULT VALUES и

INSERT INTO [my_table] ([column_3],[column_5],[column_6]) VALUES ('1','2','3')

поэтому добавил ряд будет

DEFAULT | DEFAULT | 1 | DEFAULT | 2 | 3 | DEFAULT | DEFAULT ..and so on..

Не удается найти какой-либо трюк в сети, и я дон Не хотите писать 190 «ПО УМОЛЧАНИЮ» в списке VALUES.

+3

Актуальной проблемой является ваш дизайн стола. 200 столбцов - что-то пошло очень не так –

+0

У столбцов указаны значения по умолчанию, или каждая вставка должна иметь разные «по умолчанию»? – Mureinik

+0

Ничего не случилось. Я не разработал эту таблицу, это просто из Microsoft Dynamics NAV, поэтому вполне нормально иметь это количество столбцов. – MaximeBTD

ответ

3

При указании списка столбцов в insert заявления, все столбцы не указанные получит значение по умолчанию, определенное для них, или null этого значения явно не определен. Итак, чтобы сделать короткую историю, вы должны указать только столбцы и значения, которые вам нужны, и позволить базе данных обрабатывать другие столбцы:

INSERT INTO [my_table] 
([column_3], [column_5], [column_6]) 
VALUES ('1', '2', '3') 
+0

Да, это то, что я хочу, поэтому, если я получу ошибку, например «Невозможно вставить значение NULL в столбец_3, столбец не принимает значения NULL», что означает, что значение по умолчанию определено ? – MaximeBTD

+0

@MaximeBTD был 'column_3' указан в запросе? Если да, вы попытались сохранить NULL. Если нет, это означает, что для этого столбца нет значения по умолчанию –

+0

@MaximeBTD да, если он не указан в списке столбцов. Вы должны изменить таблицу, чтобы добавить к ней значение по умолчанию. Например: 'ALTER TABLE [my_table] ДОБАВИТЬ ПО УМОЛЧАНИЮ '3' ДЛЯ [column_3]'. – Mureinik