Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена имен таблиц в большом количестве вьюшек / 18 сообщений из 18, страница 1 из 1
09.10.2021, 15:19
    #40103289
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
Добрый день,
есть база с именами таблиц зависящих от периода (например, dbo.Table_2021_Products, dbo.Table_2021_Customers). В этой же базе пара сотен вьюшек привязанных к этим названиям.
При переходе в новый период программа создает таблицы для нового периода (например, dbo.Table_2022_Products, dbo.Table_2022_Customers), но все вьюшки приходится ручками переподвязать к таблицам из нового периода.
Сейчас заходим в каждую вьюшку и ручками копи-пастим или заменой меняем имена таблиц.

В связи с этим просьба помочь решить 2 вопроса:
1. Как это можно сделать быстро не заходя в каждую из 2х сотен вьюшек?
2. Как можно организовать запросы вьюшек таким образом, чтобы где-то один раз внести номер периода и не менять остального?

Благодарю за помощь.
...
Рейтинг: 0 / 0
09.10.2021, 15:32
    #40103293
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131,

создать скрипт из меню SSMS, затем сделать замену через меню
...
Рейтинг: 0 / 0
09.10.2021, 15:42
    #40103296
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
Может им про синонимы рассказать?
...
Рейтинг: 0 / 0
09.10.2021, 16:13
    #40103302
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131,

автор2. Как можно организовать запросы вьюшек таким образом, чтобы где-то один раз внести номер периода и не менять остального?

Используйте табличную функцию вместо представления.

автородин раз внести номер периода
Внести куда и где?
...
Рейтинг: 0 / 0
09.10.2021, 17:34
    #40103320
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
Критик,
если я Вас правильно понял, примерно так и делаем для каждой вьюшки отдельно. Если вы про скрипт на все вьюшки, то расскажите как.
...
Рейтинг: 0 / 0
09.10.2021, 17:36
    #40103321
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
aleks222,
Спасибо. Попытаюсь разобраться (я не волшебник, я только учусь). Если ткнете в конкретный пример, буду благодарен.
...
Рейтинг: 0 / 0
09.10.2021, 17:36
    #40103322
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
aleks222
Может им про синонимы рассказать?

Ненене! Не порть удовольствие!
...
Рейтинг: 0 / 0
09.10.2021, 17:38
    #40103323
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
Владислав Колосов,
Спасибо, почитал поверхностно, что такое табличные функции, думаю это, что надо. Надеюсь смогу разобраться.
...
Рейтинг: 0 / 0
09.10.2021, 17:55
    #40103328
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
uaggster
aleks222
Может им про синонимы рассказать?

Ненене! Не порть удовольствие!


Кайфанул?
Интересно, много ли на мединских форумах таких экспертов, которые на вопрос о конкретной болячке отвечают: " Может рассказать им о существовании гистологии? " и дружненько стебутся над задавшим вопрос...

А если по существу, то спасибо конечно, что указываете путь и наводите меня на дальнейшее саморазвитие, но я не админ, не программист и т.п., я был бы рад, если бы меня носом ткнули.

спасибо за понимание.
...
Рейтинг: 0 / 0
09.10.2021, 18:17
    #40103332
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131
uaggster
пропущено...

Ненене! Не порть удовольствие!


Кайфанул?
Интересно, много ли на мединских форумах таких экспертов, которые на вопрос о конкретной болячке отвечают: " Может рассказать им о существовании гистологии? " и дружненько стебутся над задавшим вопрос...

А если по существу, то спасибо конечно, что указываете путь и наводите меня на дальнейшее саморазвитие, но я не админ, не программист и т.п., я был бы рад, если бы меня носом ткнули.

спасибо за понимание.



Мне бы интсрукцию, типа:

1. На все 100 вовлеченных таблиц присутствующих во вьюшках создай синонимы вот таким скриптом... или ручками.
2. Во всех 200 вьюшках замени ссылки на таблицы на их синонимы вот таким скриптом или ручками.
3. В момент перехода периода заменяешь синонимы на новые таблицы вот таким скриптом...
...
Рейтинг: 0 / 0
09.10.2021, 19:10
    #40103344
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
Владислав Колосов,

Попробовал разобраться, своими силами удается сделать табличную функцию, но вот c параметром, который был бы частью имени таблицы не разобрался.

Пример скрипта можно?
...
Рейтинг: 0 / 0
09.10.2021, 19:23
    #40103347
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131
botan131
пропущено...


Кайфанул?
Интересно, много ли на мединских форумах таких экспертов, которые на вопрос о конкретной болячке отвечают: " Может рассказать им о существовании гистологии? " и дружненько стебутся над задавшим вопрос...

А если по существу, то спасибо конечно, что указываете путь и наводите меня на дальнейшее саморазвитие, но я не админ, не программист и т.п., я был бы рад, если бы меня носом ткнули.

спасибо за понимание.



Мне бы интсрукцию, типа:

1. На все 100 вовлеченных таблиц присутствующих во вьюшках создай синонимы вот таким скриптом... или ручками.
2. Во всех 200 вьюшках замени ссылки на таблицы на их синонимы вот таким скриптом или ручками.
3. В момент перехода периода заменяешь синонимы на новые таблицы вот таким скриптом...


ИнТсРукция
1. Осознаешь, методом чтения документации, "что такое есть синоним".
2. Объявляешь синонимы для всех своих табличек. Надеюсь их меньше 200.
3. ОДИН раз меняешь в своих вьюшках имена таблиц на синонимы. После чего вьюшки более не трогаем.
4. При необходимости, переопределяешь синоним на ДРУГУЮ табличку. Можно скрипт наваять. Если табличек не 200 - руками.

Код: sql
1.
2.
DROP SYNONYM [aShema].[aTable]
CREATE SYNONYM [aShema].[aTable] FOR [schema].[Table_NNN]
...
Рейтинг: 0 / 0
09.10.2021, 19:24
    #40103348
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131
Владислав Колосов,

Попробовал разобраться, своими силами удается сделать табличную функцию, но вот c параметром, который был бы частью имени таблицы не разобрался.

Пример скрипта можно?

Не мучайся, страдалец. На этом пути рыбы нет.
...
Рейтинг: 0 / 0
09.10.2021, 19:35
    #40103349
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
aleks222,

Спасибо!
...
Рейтинг: 0 / 0
09.10.2021, 20:52
    #40103358
SERG1257
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131 При переходе в новый период программа создает таблицы для нового периодаКто-то заново изобретает секционирование
А чем обычное не устраивает? Варианты ответов
  • Вы про него не знали?
  • Версия/редакция этого не умеют?
  • Нет доступа к коду приложения?
...
Рейтинг: 0 / 0
10.10.2021, 10:31
    #40103393
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
SERG1257,

Программа ERP сторонняя, закрытая, доступа туда нет, но есть возможность работать с базой программы.
...
Рейтинг: 0 / 0
10.10.2021, 15:35
    #40103422
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131,

луче сделайте так - создайте одно представление, которое необходимо будет исправлять. Остальные представления отредактируйте так, чтобы они использовали это единое представление.
...
Рейтинг: 0 / 0
12.10.2021, 17:56
    #40103883
evgenA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Замена имен таблиц в большом количестве вьюшек
botan131,

как вариант по первому пункту, найти и заменить во всех вью
Если можно четко формализовать критерии замены, можно как-то так скрипт попробовать сформировать (альтер вью последняя колонка)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT  
        DB_NAME() AS DB_Name ,
	SCHEMA_NAME(SCHEMA_ID) as SCHEMA_name,
        o.name AS 'ViewName' ,
        o.Type ,
        o.create_date ,
        sm.[DEFINITION] AS 'Original script'
		,replace(replace(sm.[DEFINITION],'CREATE','ALTER'),'Table_2021_','Table_2022_')+char(13) + char(10)+'GO'+char(13) + char(10) as 'New script'
FROM    sys.objects o
        INNER JOIN sys.sql_modules sm ON o.object_id = sm.OBJECT_ID
WHERE   
o.Type = 'V' -- user view
--and o.name like '%Name%' -- если есть определенная маска отбора по имени вью 
and sm.[DEFINITION] like '%Table\_2021\_%' escape '\'  -- если есть определенная маска имени искомых таблиц
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена имен таблиц в большом количестве вьюшек / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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