Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 добавление строки с одним единственным автоинкрементным полем  [new]
skais675
Member

Откуда:
Сообщений: 76
Я создал таблицу test с одним единственным полем id и оно автоинкрементное.
Как добавлять строкив нее?
12 окт 16, 10:29    [19772095]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
Pavel1211
Member

Откуда: Екатеринбург
Сообщений: 205
skais675,

insert into table default values
12 окт 16, 10:30    [19772106]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Pavel1211
skais675,

insert into table default values
Если в MS Management Studio и надо добавить миллион строк, то
INSERT [Table] DEFAULT VALUES;
GO 1000000
12 окт 16, 10:38    [19772171]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
iap,

Это может быть очень долго, особенно если пинг до сервера заметный. Так быстрее:
declare @t table (
	Id int identity(1,1) not null
);

merge @t t
using (
	select top (1000000) 0 as [Id]
	from sys.all_objects a cross join sys.all_objects b
) s on 1=1
when not matched by target then
	insert default values;

select * from @t;
12 окт 16, 15:54    [19774111]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Ennor Tiegael
iap,

Это может быть очень долго, особенно если пинг до сервера заметный. Так быстрее:
declare @t table (
	Id int identity(1,1) not null
);

merge @t t
using (
	select top (1000000) 0 as [Id]
	from sys.all_objects a cross join sys.all_objects b
) s on 1=1
when not matched by target then
	insert default values;

select * from @t;

merge на not matched на insert default на identity... индус?
12 окт 16, 16:03    [19774165]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
invm
Member

Откуда: Москва
Сообщений: 9400
TaPaK
merge на not matched на insert default на identity... индус?
Есть другие варианты?

Ennor Tiegael, нужно 1=1 заменить на 1<>1. Иначе сработает только если таблица изначально пуста.
12 окт 16, 16:36    [19774388]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3274
invm,

Можно считать это багом, а можно - фичей-предохранителем
13 окт 16, 14:41    [19777919]     Ответить | Цитировать Сообщить модератору
 Re: добавление строки с одним единственным автоинкрементным полем  [new]
Никита_1980
Member

Откуда:
Сообщений: 7
Вот физический смысл такой таблицы очень сомнительный.
17 окт 16, 15:59    [19791118]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить