Мне интересно, добавлю ли я столбец в свою таблицу, используя:

alter table Jobs
add Complete boolean

Удалит ли это все данные, которые сейчас находятся в моей таблице? Я использую SQL Server Management Studio 2012

3
Chase Ernst 1 Фев 2015 в 00:45

2 ответа

Лучший ответ

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

Обратите внимание: boolean не является типом данных в SQL Server, поэтому этот конкретный оператор не будет работать. Вместо этого вы можете использовать bit, tinyint, smallint или int. Или char(1) для хранения "T" и "F".

И второе примечание: если ваша таблица очень большая, то добавление столбца может занять некоторое время, потому что все данные, возможно, придется переписать. Хотя значения равны NULL, каждая страница в SQL Server содержит бит для значений NULL во всех столбцах. Если это переступает границу байта, тогда данные должны быть перегруппированы на странице - и, возможно, новые страницы, выделенные для данных. В любом случае каждую страницу необходимо изменить, чтобы включить в нее значения NULL. По этой причине рекомендуется по возможности добавлять столбцы в пустые таблицы.

6
Gordon Linoff 31 Янв 2015 в 21:54

Нет, это не сотрет ваши данные. Он добавит столбец, и всем существующим данным в этом столбце будут присвоены нулевые значения.

1
jakubiszon 31 Янв 2015 в 21:47