powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ALTER COLUMN (проиндексированный)
12 сообщений из 12, страница 1 из 1
ALTER COLUMN (проиндексированный)
    #38258565
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.
Нужно увеличить размерность проиндексированного поля.
Пишу: ALTER TABLE t1 ALTER COLUMN name char(200)
Ругается, что "индекс ix_name зависит от столбец name".
Проверял на 2005 и 2008 сервере... на 2000 сервере такого не наблюдается.
Пришлось делать DROP INDEX - ALTER COLUMN - CREATE INDEX...
...а как это сделать по другому?
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258579
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
filll,

я так думаю, индекс-то должен быть перестроен по-любому...
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258596
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapя так думаю, индекс-то должен быть перестроен по-любому...

Поддержу. Буквально на днях менял структуру таблицы, пришлось drop/create.

P.S. Если таблица не особо большая, то норм.
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258605
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
filllна 2000 сервере такого не наблюдается.
Не придумывайте

ALTER COLUMN

The altered column cannot be:

...
Used in an index, unless the column is a varchar, nvarchar, or varbinary data type, the data type is not changed, and the new size is equal to or larger than the old size.

Used in a PRIMARY KEY or [FOREIGN KEY] REFERENCES constraint.

...

Цитата одинакова в хелпах всех версий
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258608
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Викт.,
если использовать varchar вместо char, то увеличение размерности происходит без необходимости удалять индекс
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258615
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShakillСергей Викт.,
если использовать varchar вместо char, то увеличение размерности происходит без необходимости удалять индексСейчас-то это не поможет: надо изменить тип!
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258618
Фотография Сергей Викт.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я ж не спорю ни с кем) И никому не даю советов) Просто написал, как поступил я. Плюс мне необходимо было изменить тип данных в 2х ключевых столбцах. В общем я удалил и тупо пересоздал индекс после изменения))
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258628
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Glory, наверно я что-то перепутал насчет 2000... на всякий случай проверю еще раз.
Спасибо, попробую варчар использовать.
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258648
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shakill,
на varchar ругается точно так же как и на char :(
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258675
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
filllна varchar ругается точно так же как и на char :(
Потому что вы меняете тип поля

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
use tempdb
go
if object_id('dbo.test1') is not null drop table dbo.test1
go
create table dbo.test1(f1 varchar(50))
go
create index idx1 on dbo.test1(f1)
go
insert dbo.test1 values('AAA')
go
select COLUMNPROPERTY(OBJECT_ID('dbo.test1'), 'f1', 'Precision') as 'BEFORE'
go
alter table dbo.test1 alter column f1 varchar(100)
go
select COLUMNPROPERTY(OBJECT_ID('dbo.test1'), 'f1', 'Precision') as 'AFTER'
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258680
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
filllShakill,
на varchar ругается точно так же как и на char :(На изменение типа?
Правильно. Выше же цитата была про "data type is not changed"!
Надеюсь, тип меняется на VARCHAR() сразу с нужным размером?
...
Рейтинг: 0 / 0
ALTER COLUMN (проиндексированный)
    #38258710
filll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory,
спасибо, я понял, что увеличить размерность варчара можно без удаления индекса.

iap,
да, изначально вопрос стоял про "как это сделать не меняя тип поля".,
но я попробовал с изменением с чара на варчар. не прошло.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / ALTER COLUMN (проиндексированный)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]