
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.09.2002, 14:12:02
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
Какими различными способами можно удалить с колонки в таблице свойство IDENTITY ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 15:48:23
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
Либо вопрос чересчур сложен, либо все ушли в курилку :) На всякий случай упрощу вопрос: Какова может быть рекомендуемая наиболее корректная последовательность операций над таблицей без использования ЕМ, позволяющая макимально безопасно и дальновидно удалить свойство IDENTITY с одной из колонок в этой таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:01:19
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
А ты посмотри, какой скрипт ЕМ генерит при попытке снять идентити. Полное пересоздание таблицы. Если бы было можно проще, я думаю ЕМ не стал бы этого делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:24:37
|
|||
|---|---|---|---|
|
|||
Простой вопрос по SQL2000 |
|||
|
#18+
Если делать через EM, то в профайлере видно, что создается другая таблица с измененной структурой, туда заливаются все данные из старой таблицы (естественно, с эксклюзивным локом), старая таблица убивается, а полученная переименовывается в старую. Это если не считать миллион предварительных проверок на существование ключей, триггера и пр., переброску всех этих элементов на новую таблицу. Не думаю, что для общего случая такой задачи можно придумать лучший механизм. Как классно: дальновидно удалить свойство IDENTITY гы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:41:24
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
Можно чуть-чуть упростить - добавляем новый стобец - копируем в него содержимое identity - удаляем столбец identity - переименовываем новый столбец ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:44:26
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
Спасибо за ответы. Да, я видел, что ЕМ пересоздает таблицу Это не очень хорошо. А плохо то, что изменяется object_id этой таблицы. Ну, нельзя без пересоздания, так нельзя - будем думать. 2GreenSunrise Да, с дальновидностью :) тут какламбурчик получился. Но, я то, втайне надеялся на какую-нибудь недокументированную возможность SQL2000 и грозящие последствия ее использования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:57:24
|
|||
|---|---|---|---|
|
|||
Простой вопрос по SQL2000 |
|||
|
#18+
Glory, ваш вариант мне пришел в голову еще до запуска профайлера, но не понравился именно в общем случае - когда навешаны ключи, триггера, констрэйнты... Тогда вся эта простенькая процедура усложняется. Нужно анализировать, какие из этих объектов относятся к нашему столбцу и т.д. Проще вытащить все связанное с этой таблицей и грохнуть все. Ну а далее по тексту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 16:59:57
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
2Glory Спасибо. Это выход. Все гениальное просто. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.09.2002, 17:32:40
|
|||
|---|---|---|---|
Простой вопрос по SQL2000 |
|||
|
#18+
2GreenSunrise Ну так я же и сказал "чуть-чуть" :-) . Просто копирование всей таблицы по методу EM это дополнительное место на диске (плюс к месту, занимаемому транзакцией). А в остальном все как у EM - анализ все зависимых от удаляемого столбца объектов, их удаление и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&tablet=1&tid=1820386]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 333ms |

| 0 / 0 |
