-- ALTER TABLE Employee alter column id int identity (1,1)
а почему такая команда не проходит ?
Server: Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'identity'.
потому что есть записи ?
-- это проходит
ALTER TABLE Employee add ids int identity (1,1)
MS SQL identity
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация:
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация:
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация:
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
был подобный баг в скл сервере только там про налы и внешние ключи. я зарепортил этот баг очень давно. потом они написали что баг пофиксен в первом сервис паке, но я реально видел его и после этого на машинах с установленным сервис паком
другими словами. это может быть баг. или кто-то уже успел вставить запись с налом. сделай все в одной транзакции и апдейт и альтер тейбл.... 


- Lepsik
- Житель
- Сообщения: 522
- Зарегистрирован: 17 фев 2003, 18:34
- Откуда: Berlin
- Контактная информация:
оказалось, что drop/create table в 3-4 раза быстрее, чем add/drop column (как вы понимаете, в тесте приходится зацикливать и drop column для упрощения)папа Карло писал(а):они реально могут делать что угодно. это МС. они знают "кишки" скл сервера. просто пересоздать таблцу с точки зрения схемы намного проще если нет много данных в ней
create table ad (id int, n varchar(100), d datetime)
declare @i int
select getdate()
set @i=0
while @i<100 begin
alter table ad add f real
alter table ad drop column f
set @i=@i+1
end
select getdate()
set @i=0
while @i<100 begin
drop table ad
create table ad (id int, n varchar(100), d datetime)
set @i=@i+1
end
select getdate()
drop table ad