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

Откуда:
Сообщений: 34
Имеется таблица:
CREATE TABLE [dbo].[PersonPhone](
	[BusinessEntityID] [int] NOT NULL,
	[PhoneNumber] nvarchar(25) NOT NULL,
	[PhoneNumberTypeID] [int] NOT NULL,
	[ModifiedDate] [datetime] NOT NULL)


В которую добавлена колонка:

ALTER TABLE [dbo].[PersonPhone]
ADD [ID] bigint UNIQUE IDENTITY(2,2)


Как удалить ID колонку? Поскольку при попытке:
ALTER TABLE [dbo].[PersonPhone]
DROP COLUMN [ID]


Приводит к ошибке: "Ошибка ALTER TABLE DROP COLUMN ID, так как один или несколько объектов обращаются к данному столбцу."
27 сен 13, 23:40    [14895490]     Ответить | Цитировать Сообщить модератору
 Re: Удаление столбца из таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
Relrin
Как удалить ID колонку? Поскольку при попытке:
ALTER TABLE [dbo].[PersonPhone]
DROP COLUMN [ID]



Приводит к ошибке: "Ошибка ALTER TABLE DROP COLUMN ID, так как один или несколько объектов обращаются к данному столбцу."
Нужно сначала удалить все ссылки на эту колонку.

Т.е. нийти их в этой и в других таблицах, потом сделать ALTER TABLE ... DROP CONSTRAIT ...
27 сен 13, 23:47    [14895505]     Ответить | Цитировать Сообщить модератору
 Re: Удаление столбца из таблицы  [new]
Relrin
Member

Откуда:
Сообщений: 34
alexeyvg
Relrin
Как удалить ID колонку? Поскольку при попытке:
ALTER TABLE [dbo].[PersonPhone]
DROP COLUMN [ID]



Приводит к ошибке: "Ошибка ALTER TABLE DROP COLUMN ID, так как один или несколько объектов обращаются к данному столбцу."
Нужно сначала удалить все ссылки на эту колонку.

Т.е. нийти их в этой и в других таблицах, потом сделать ALTER TABLE ... DROP CONSTRAIT ...


Фишка в том ,что кроме создание колонки и забиванием ее данными больше ничего нету. Какие связи?
28 сен 13, 01:19    [14895686]     Ответить | Цитировать Сообщить модератору
 Re: Удаление столбца из таблицы  [new]
aleks2
Guest
Relrin
Фишка в том,


Что поле IDENTITY не берется дропать даже SSMS.
А тупо пересоздает таблицу.

Что, какбе, намекает...
28 сен 13, 07:44    [14895784]     Ответить | Цитировать Сообщить модератору
 Re: Удаление столбца из таблицы  [new]
invm
Member

Откуда: Москва
Сообщений: 9683
Relrin
Фишка в том ,что кроме создание колонки и забиванием ее данными больше ничего нету. Какие связи?
Чудес не бывает. Перед ошибкой 4922 должна быть ошибка 5074, в которой называется зависимая сущность.
aleks2
Что, какбе, намекает...
Ни на что это не намекает
create table dbo.t (id int not null identity, v int);
go

alter table dbo.t drop column id;
go

drop table dbo.t;
go
28 сен 13, 10:15    [14895837]     Ответить | Цитировать Сообщить модератору
 Re: Удаление столбца из таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31816
aleks2
Что поле IDENTITY не берется дропать даже SSMS.
А тупо пересоздает таблицу.
Да SSMS постоянно "не берётся" :-)
Relrin
Фишка в том ,что кроме создание колонки и забиванием ее данными больше ничего нету. Какие связи?
Как это ничего нету? А констрэйн, который вы сами создали??? Вот он на неё и ссылается.

И в общем про это вам пишет сам сиквел:

CREATE TABLE [dbo].[PersonPhone](
	[BusinessEntityID] [int] NOT NULL,
	[PhoneNumber] nvarchar(25) NOT NULL,
	[PhoneNumberTypeID] [int] NOT NULL,
	[ModifiedDate] [datetime] NOT NULL)
GO

ALTER TABLE [dbo].[PersonPhone]
ADD [ID] bigint UNIQUE IDENTITY(2,2)
GO

ALTER TABLE [dbo].[PersonPhone]
DROP COLUMN [ID]

GO
Msg 5074, Level 16, State 1, Line 2
объект "UQ__PersonPh__3214EC26060DEAE8" зависит от столбец "ID".
Msg 4922, Level 16, State 9, Line 2<<<
Ошибка ALTER TABLE DROP COLUMN ID, так как один или несколько объектов обращаются к данному столбцу.
28 сен 13, 21:23    [14897355]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить