Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Beaver Member Откуда: Сообщений: 210 |
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build : ) (Hypervisor) 1. создаем представление iii 2. переименовываем его в iii_old 3. создаем представление iii c другим кодом 4. обновляем представление iii_old 5. в результате получаем, что изменилось представление iii, оно вернулось к первоначальному значению Вопрос - как с этим бороться? Есть ли другой, корректный, способ обновить представление? create view iii as select 1 as f go exec sp_rename 'iii', 'iii_old' go create view iii as select 2 as g go exec sp_refreshview 'iii_old' В результате выполнения sp_refreshview изменяется представление iii, возвращается к предыдущему состоянию, те становится таким: create view iii as select 1 as f |
19 сен 19, 08:59 [21973850] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Beaver, не вижу что не так
|
|
19 сен 19, 09:16 [21973866] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
Хорошо бы репро сделать. |
||
19 сен 19, 09:28 [21973876] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
TaPaK, Надо выполнять на 2008 R2 или младше. Потому что, по-моему, уже в 2012 пофиксили. Beaver, Была такая бага. Лечится отказом от sp_rename. |
19 сен 19, 09:41 [21973892] Ответить | Цитировать Сообщить модератору |
andy st Member Откуда: Сообщений: 806 |
бага есть |
||
19 сен 19, 09:47 [21973900] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
Beaver, там вроде такое лечит после переименования alter view iii_old as select 1 as f |
19 сен 19, 09:50 [21973902] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31785 |
Создал новую вьюху (или сделал alter), создал iii_old со старым содержимым (правда, непонятно зачем), и всё. |
||
19 сен 19, 10:40 [21973953] Ответить | Цитировать Сообщить модератору |
Beaver Member Откуда: Сообщений: 210 |
Сейчас ситуация следующая. Имеется порядка 1000 представлений, сколько из них в свое время были переименованы - неизвестно. Сейчас представления нужно обновить, так как изменилась структура многих таблиц. Что делать то? |
19 сен 19, 11:35 [21974020] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
что мешает заскриптовать и drop/create? |
||
19 сен 19, 11:36 [21974022] Ответить | Цитировать Сообщить модератору |
Shakill Member Откуда: мск Сообщений: 1882 |
и скрипты сохранить, а не на лету это делать ) т.к. после drop этот самый create может и не состояться |
||||
19 сен 19, 11:42 [21974030] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
Переименованные сущности - это те объекты у которых имя отличается от имени в скрипте из object_definition. Их заскриптовать вместе с разрешениями как drop/create и в полученном скрипте руками привести в порядок наименования. И больше никогда не пользоваться sp_rename, пока MS не исправит ее аномалии (чего, имхо, никогда не случится) |
||
19 сен 19, 12:38 [21974116] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |