powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Некорректный результат sp_refreshview
11 сообщений из 11, страница 1 из 1
Некорректный результат sp_refreshview
    #39863691
Beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, оно вернулось к первоначальному значению

Вопрос - как с этим бороться? Есть ли другой, корректный, способ обновить представление?

Код: sql
1.
2.
3.
4.
5.
6.
7.
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
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863703
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beaver,

не вижу что не так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DROP VIEW IF EXISTS  iii
DROP VIEW IF EXISTS iii_old
GO
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'
GO
SELECT * FROM iii_old
SELECT * FROM iii


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
f
-----------
1

(1 row affected)

g
-----------
2
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863712
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beaverте становится таким:

create view iii as select 1 as fА как вы это проверили?
Хорошо бы репро сделать.
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863721
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK,

Надо выполнять на 2008 R2 или младше. Потому что, по-моему, уже в 2012 пофиксили.


Beaver,

Была такая бага. Лечится отказом от sp_rename.
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863728
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Microsoft SQL Server 2008 R2 (SP3-GDR) (KB4057113) - 10.50.6560.0
бага есть
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863730
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beaver,

там вроде такое лечит
после переименования

alter view iii_old as select 1 as f
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863767
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKBeaver,

там вроде такое лечит
после переименования

alter view iii_old as select 1 as fТогда же смысл от переименования теряется, зачем тогда всё это?
Создал новую вьюху (или сделал alter), создал iii_old со старым содержимым (правда, непонятно зачем), и всё.
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863816
Beaver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас ситуация следующая. Имеется порядка 1000 представлений, сколько из них в свое время были переименованы - неизвестно. Сейчас представления нужно обновить, так как изменилась структура многих таблиц. Что делать то?
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863818
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeaverСейчас ситуация следующая. Имеется порядка 1000 представлений, сколько из них в свое время были переименованы - неизвестно. Сейчас представления нужно обновить, так как изменилась структура многих таблиц. Что делать то?
что мешает заскриптовать и drop/create?
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863825
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKBeaverСейчас ситуация следующая. Имеется порядка 1000 представлений, сколько из них в свое время были переименованы - неизвестно. Сейчас представления нужно обновить, так как изменилась структура многих таблиц. Что делать то?
что мешает заскриптовать и drop/create?
и скрипты сохранить, а не на лету это делать ) т.к. после drop этот самый create может и не состояться
...
Рейтинг: 0 / 0
Некорректный результат sp_refreshview
    #39863883
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeaverЧто делать то?Для начала избавиться от переименованных сущностей.

Переименованные сущности - это те объекты у которых имя отличается от имени в скрипте из object_definition.
Их заскриптовать вместе с разрешениями как drop/create и в полученном скрипте руками привести в порядок наименования.

И больше никогда не пользоваться sp_rename, пока MS не исправит ее аномалии (чего, имхо, никогда не случится)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Некорректный результат sp_refreshview
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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