Добавить столбец со значением по умолчанию в существующую таблицу в SQL Server

Вы также можете попробовать следующее:

from itertools import izip

l = ['name1', 'name2', 'name3', 'name4', 'name5', 'name6']

for t in izip(*[iter(l)]*3):
    print '\t'.join(t)
name1   name2   name3
name4   name5   name6

Если вы не уверены, что длина списка будет кратной 3, вы можете использовать izip_longest, применяя та же идея:

from itertools import izip_longest as izipl

l = ['name1', 'name2', 'name3', 'name4', 'name5', 'name6', 'name7']

for t in izipl(fillvalue='', *[iter(l)]*3):
    print '\t'.join(t)
name1   name2   name3
name4   name5   name6
name7   
2578
задан Ahmad.Tr 24 February 2018 в 03:41
поделиться

6 ответов

Синтаксис:

ALTER TABLE {TABLENAME} 
ADD {COLUMNNAME} {TYPE} {NULL|NOT NULL} 
CONSTRAINT {CONSTRAINT_NAME} DEFAULT {DEFAULT_VALUE}
WITH VALUES

Пример:

ALTER TABLE SomeTable
        ADD SomeCol Bit NULL --Or NOT NULL.
 CONSTRAINT D_SomeTable_SomeCol --When Omitted a Default-Constraint Name is autogenerated.
    DEFAULT (0)--Optional Default-Constraint.
WITH VALUES --Add if Column is Nullable and you want the Default Value for Existing Records.

Примечания:

Имя Дополнительного ограничения:
, Если Вы не учитываете CONSTRAINT D_SomeTable_SomeCol тогда, SQL Server автоматически сгенерирует
    Значение-по-умолчанию-Contraint с забавным Именем как: DF__SomeTa__SomeC__4FB7FEF6

Дополнительный Оператор Со значениями:
Эти WITH VALUES только необходим, когда Ваш Столбец является Nullable
    и Вы хотите Значение по умолчанию, используемое для Существующих Записей.
, Если Ваш Столбец будет NOT NULL, то он будет автоматически использовать Значение по умолчанию
    для всех Существующих Записей, определяете ли Вы WITH VALUES или нет.

, Как Вставляет работу с Ограничением по умолчанию:
, Если Вы вставляете Запись в SomeTable и делаете не , Определяют SomeCol значение, тогда оно Примет значение по умолчанию к 0.
, Если Вы вставляете Запись и , Определяют SomeCol значение как [1 111] (и Ваш столбец позволяет, аннулирует),
    тогда Ограничение по умолчанию будет не использоваться, и NULL будет вставлен как Значение.

Примечания были основаны на общей большой обратной связи ниже.
Особая благодарность:
    @Yatrix, @WalterStabosz, @YahooSerious, и @StackMan для их Комментариев.

3274
ответ дан MikeTeeVee 24 February 2018 в 03:41
поделиться
  • 1
    Это должно работать в стандартном проекте iOS, созданном XCode. Целый UIKit импортируется в предварительно скомпилированном заголовке (ProjectName-Prefix.pch). – Matthias Bauch 11 July 2012 в 16:22

Остерегайтесь, когда столбец, который Вы добавляете, имеет NOT NULL ограничение, все же не имеет DEFAULT ограничение (значение). ALTER TABLE оператор перестанет работать в этом случае, если таблица будет иметь какие-либо строки в ней. Решение состоит в том, чтобы или удалить NOT NULL ограничение из нового столбца или обеспечить DEFAULT ограничение для него.

95
ответ дан jalbert 24 February 2018 в 03:41
поделиться
ALTER TABLE Protocols
ADD ProtocolTypeID int NOT NULL DEFAULT(1)
GO

включение ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ заливки столбец в существующий строки со значением по умолчанию, таким образом, ограничение NOT NULL не нарушено.

953
ответ дан dbugger 24 February 2018 в 03:41
поделиться
  • 1
    Это становится пойманным в большом количестве рекурсия, не бесконечный цикл. – user207421 9 February 2013 в 09:26
ALTER TABLE ADD ColumnName {Column_Type} Constraint

ALTER TABLE статьи MSDN (Transact-SQL) имеет весь изменить синтаксис таблицы.

37
ответ дан Peter Mortensen 24 February 2018 в 03:41
поделиться
ALTER TABLE <table name> 
ADD <new column name> <data type> NOT NULL
GO
ALTER TABLE <table name> 
ADD CONSTRAINT <constraint name> DEFAULT <default value> FOR <new column name>
GO
129
ответ дан John Saunders 24 February 2018 в 03:41
поделиться

В SQL Server можно использовать ниже шаблона:

ALTER TABLE {tablename}
ADD 
    {columnname} {datatype} DEFAULT {default_value}

, Например, для добавления нового столбца [Column1] типа данных int со значением по умолчанию = 1 в существующую таблицу [Table1] можно использовать ниже запроса:

ALTER TABLE [Table1]
ADD 
    [Column1] INT DEFAULT 1
0
ответ дан 22 November 2019 в 19:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: