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

Откуда:
Сообщений: 227
Запускаю в Management Studio ...
ALTER TABLE [dbo].[table] ALTER COLUMN [ID] INT NOT NULL

ALTER TABLE [dbo].[table] ADD CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED 
([ID] desc)
WITH (FILLFACTOR = 95) ON [PRIMARY]

Получаю:
Msg 8111, Level 16, State 1, Line 5
Cannot define PRIMARY KEY constraint on nullable column in table 'table'.
Msg 1750, Level 16, State 0, Line 5
Could not create constraint. See previous errors.

Работает только когда запускаю эти два стейтмента отдельно друг от друга ... или ставлю "GO" между ними !
Вопрос ... какого хрена ?
11 окт 11, 19:51    [11423025]     Ответить | Цитировать Сообщить модератору
 Re: Не могу создать индекс ...  [new]
iljy
Member

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

происходит компиляция пакета целиком, до его выполнения.
11 окт 11, 19:58    [11423057]     Ответить | Цитировать Сообщить модератору
 Re: Не могу создать индекс ...  [new]
invm
Member

Откуда: Москва
Сообщений: 9827
Dimais, непонятна необходимость выполнения данных действий в одном пакете, но если очень нужно, то можно так:
ALTER TABLE [dbo].[table] ALTER COLUMN [ID] INT NOT NULL
exec('ALTER TABLE [dbo].[table] ADD CONSTRAINT [PK_table] PRIMARY KEY CLUSTERED ([ID] desc) WITH (FILLFACTOR = 95) ON [PRIMARY]')
11 окт 11, 20:10    [11423098]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить