|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
Доброе время суток! Существует ли возможность с большой вероятностью определить что поле таблицы было переименовано? и если да то по какому критерию это можно узнать? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 17:54 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
к примеру, заранее аудит напустить ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 18:04 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
Crimean, проще никак? В некоторых платных продуктах определение происходит и без включения аудита. Мне это нужно при сравнении структуры таблиц дабы если в исходной таблице поле переименовали в целевой из другой базы его тоже переименовать а не удалять и создавать заново. (изначально предполагается что таблицы и базы были идентичны (целевая была получена восстановлением из резервной копии исходной базы)). Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 18:35 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
Mikhail Tchervonenko, ну так найти различия в структуре двух баз это одно (и для этого есть куча утилит, в том числе бесплатных), а определить сам факт переименования - это другое. например, если у двух полей одного типа некий злодей поменял местами имена ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 18:43 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoВ некоторых платных продуктах определение происходит и без включения аудита.Там происходит не определение, а додумывание за пользователя. Додумывание включается, когда у столбцов совпадают все атрибуты, кроме имени. Но совершенно не учитывыается вариант, когда столбец был удален и добавлен новый. А ведь в этом случае данные в таблицах будут различаться. И как вы собираетесь поступать, если "переименованный" столбец задействован в каких-либо констрейнтах и триггерах? Если хотите, чтобы ваша схема хоть как-то работала -- навесьте на БД DDL-триггер, который будет сохранять все DDL-инструкции. Потом их будете применять на второй БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 18:55 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoСуществует ли возможность с большой вероятностью определить что поле таблицы было переименовано? и если да то по какому критерию это можно узнать? Спасибо Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Такой запрос покажет только те переименованные поля, которые изначально были созданы в MyDabatase1 и позже сресторены в MyDabatase2 из бекапа от MyDabatase1. Я специально перепроверил на mssql 2008r2: идентификаторы таблиц (object_id) и колонок (column_id) сохраняются при бекапе\ресторе, что позволяет использовать их в качестве ключей для сопоставлений. Надо учитывать, что если колонки не переименовывались, а менялись местами, то запрос их также покажет. зы: это все out of warranty ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2012, 19:31 |
|
Как определить что поле переименовано
|
|||
---|---|---|---|
#18+
RubinDm, спасибо, предполагается что дальше сравнение будет производиться после добавления или удаления колонок через ALTER TABLE и тогда id не будут совпадать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2012, 10:50 |
|
|
start [/forum/topic.php?fid=46&msg=37845088&tid=1712102]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 155ms |
0 / 0 |