2014-02-20 4 views
0

в orther, чтобы получить столбец, подобный тип MySQL ENUM, я написал SQL запрос следующим образомКак удалить столбец mysql-enum в sql-сервере?

ALTER TABLE [DbName].[dbo].[MediaContent] 
ADD MediaType nvarchar(50) 
check(MediaType in ('audio','video','song','other')) 

это работало как хотелось бы (для теста): А теперь я хочу, чтобы удалить этот столбец без успеха. Кажется, что нет способа напрямую удалить столбец, на котором есть ограничение. Как я могу решить эту проблему? Я хочу удалить этот столбец и создать другой.

здесь сообщение об ошибке я получаю в то время как удаление

The object 'CK__MediaCont__Media__14270015' is dependent on column 'MediaType'. 
    ALTER TABLE DROP COLUMN MediaType failed 
because one or more objects access this   
column. (Microsoft SQL Server, Error: 5074) 
+2

Вы пробовали сбросив ограничение первым, а затем опуская колонку? –

+0

Спасибо за этот ответ, я что-то упустил? где я могу найти это ограничение, чтобы его удалить? – Bellash

+0

Готово! Спасибо. ИСПОЛЬЗУЕМЫЙ этот 'ALTER TABLE [DbName]. [Dbo]. [MediaContent] DROP CONSTRAINT CK__MediaCont__Media__14270015' как предложено ron tornambe – Bellash

ответ

1

Вы должны сначала удалить проверочное ограничение, указанное в сообщении об ошибке, так как, что останавливает вас от падения колонки. После этого вы можете удалить столбец.

4

Объект, на который ссылается сообщение об ошибке, является именем ограничения. Вы должны быть в состоянии использовать последующие:

ALTER TABLE [DbName].[dbo].[MediaContent] 
    DROP CONSTRAINT CK__MediaCont__Media__14270015 
+0

безопасно! Спасибо. – Bellash

0

уронить Ограничить первый затем падение колонки, он будет работать

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

  • Нет связанных вопросов^_^