Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Простой вопрос по SQL2000 / 9 сообщений из 9, страница 1 из 1
12.09.2002, 14:12:02
    #32050073
KIM
KIM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Какими различными способами можно удалить с колонки в таблице свойство IDENTITY ?
...
Рейтинг: 0 / 0
12.09.2002, 15:48:23
    #32050137
KIM
KIM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Либо вопрос чересчур сложен, либо все ушли в курилку :)
На всякий случай упрощу вопрос:

Какова может быть рекомендуемая наиболее корректная последовательность операций над таблицей без использования ЕМ,
позволяющая макимально безопасно и дальновидно удалить свойство IDENTITY с одной из колонок в этой таблице?
...
Рейтинг: 0 / 0
12.09.2002, 16:01:19
    #32050142
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
А ты посмотри, какой скрипт ЕМ генерит при попытке снять идентити. Полное пересоздание таблицы. Если бы было можно проще, я думаю ЕМ не стал бы этого делать.
...
Рейтинг: 0 / 0
12.09.2002, 16:24:37
    #32050165
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Если делать через EM, то в профайлере видно, что создается другая таблица с измененной структурой, туда заливаются все данные из старой таблицы (естественно, с эксклюзивным локом), старая таблица убивается, а полученная переименовывается в старую. Это если не считать миллион предварительных проверок на существование ключей, триггера и пр., переброску всех этих элементов на новую таблицу.

Не думаю, что для общего случая такой задачи можно придумать лучший механизм.

Как классно: дальновидно удалить свойство IDENTITY
гы :-)
...
Рейтинг: 0 / 0
12.09.2002, 16:41:24
    #32050185
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Можно чуть-чуть упростить
- добавляем новый стобец
- копируем в него содержимое identity
- удаляем столбец identity
- переименовываем новый столбец
...
Рейтинг: 0 / 0
12.09.2002, 16:44:26
    #32050193
KIM
KIM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Спасибо за ответы.
Да, я видел, что ЕМ пересоздает таблицу
Это не очень хорошо.
А плохо то, что изменяется object_id этой таблицы.

Ну, нельзя без пересоздания, так нельзя - будем думать.

2GreenSunrise

Да, с дальновидностью :) тут какламбурчик получился.
Но, я то, втайне надеялся на какую-нибудь недокументированную возможность SQL2000 и грозящие последствия ее использования.
...
Рейтинг: 0 / 0
12.09.2002, 16:57:24
    #32050204
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
Glory, ваш вариант мне пришел в голову еще до запуска профайлера, но не понравился именно в общем случае - когда навешаны ключи, триггера, констрэйнты... Тогда вся эта простенькая процедура усложняется. Нужно анализировать, какие из этих объектов относятся к нашему столбцу и т.д. Проще вытащить все связанное с этой таблицей и грохнуть все. Ну а далее по тексту.
...
Рейтинг: 0 / 0
12.09.2002, 16:59:57
    #32050206
KIM
KIM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
2Glory

Спасибо. Это выход.
Все гениальное просто.
:)
...
Рейтинг: 0 / 0
12.09.2002, 17:32:40
    #32050222
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Простой вопрос по SQL2000
2GreenSunrise
Ну так я же и сказал "чуть-чуть" :-) . Просто копирование всей таблицы по методу EM это дополнительное место на диске (плюс к месту, занимаемому транзакцией). А в остальном все как у EM - анализ все зависимых от удаляемого столбца объектов, их удаление и т.д.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Простой вопрос по SQL2000 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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