2015-02-23 3 views
0

Как гласит название, я не могу удалить или изменить столбец в SQL Azure. Я хотел изменить свой тип данных от int до tinyint. Я задал tinyint, но, похоже, Azure перевернул это. Я пробовал через консоль управления, а также из SSMS. Я нашел следующий вопрос SO, но, что немаловажно, мой столбец не является основным/внешним ключом и даже не используется в индексе. SQL Azure - Could not able to alter column typeНевозможно сбросить/изменить столбец в SQL Azure

В консоли управления Aure, я получаю следующую ошибку

<?xml version="1.0" encoding="utf-8"?><m:error xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><m:code>InternalError:7752a6bb-a244-f1a0-221b-b9c482ae6680</m:code><m:message xml:lang="en-US">An error was encountered while applying the changes.&#xD; 
An exception occurred while executing the Transact-SQL statement: ALTER TABLE [dbo].[xxxxx] DROP COLUMN [EmailFrequency2].&#xD; 
The object 'ColumnDefault_b0898c7d-0fb6-4466-8894-1325eb8c4efd' is dependent on column 'EmailFrequency2'.&#xD; 
ALTER TABLE DROP COLUMN EmailFrequency2 failed because one or more objects access this column.</m:message></m:error> 

Я попытался "InternalError прибегая к помощи: 7752a6bb-A244-f1a0-221b-b9c482ae6680", но получил ноль хитов.

Я попытался отключить ограничения при попытке изменить таблицу (изменить тип данных из INT в TinyInt):

ALTER TABLE [dbo].[xxxxx] NOCHECK CONSTRAINT ALL 
ALTER TABLE [dbo].[xxxxx] ALTER COLUMN [EmailFrequency] TINYINT NULL 
ALTER TABLE [dbo].[xxxxx] NOCHECK CONSTRAINT ALL 

Но я получаю в основном ту же ошибку:

Msg 5074, Level 16, State 1, Line 2 
The object 'ColumnDefault_871cbb52-f294-4a57-9c51-b8fd435d0d59' is dependent on column 'EmailFrequency'. 
Msg 4922, Level 16, State 9, Line 2 
ALTER TABLE ALTER COLUMN EmailFrequency failed because one or more objects access this column. 

I не может найти никакой ссылки на объект ColumnDefault_xxxx-GUID-xxx где-нибудь

Может ли кто-нибудь предложить, как я мог обойти это ограничение? Мне удалось переименовать таблицу, но не удалить ее или изменить тип данных.

ответ

3

Значение по умолчанию является сдерживающим фактором у вас есть на месте, вы должны удалить его первым:

ALTER TABLE xxxxx DROP CONSTRAINT <name of your default here> 
+1

ahaaaa! Я обновил свой запрос до вышеуказанного, но получил ошибку: «ColumnDefault_871cbb52-f294-4a57-9c51-b8fd435d0d59« не является ограничением ». ОДНАКО, на консоли управления я удалил значение по умолчанию и смог удалить столбец, поэтому вы определенно определили основную проблему. Благодаря! –

+1

Оглядываясь назад, кажется очевидным «ColumnDefault_xxxxx» .... –

Смежные вопросы