Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 19

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Max Chistyakov
хм, сложно сказать. БД уже 10 лет существует
Ну вот, о том и речь, и если ALTER TABLE , наверняка же не пересоздавал все view, trigger, procedure, что на неё ссылаются...
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
Oleg T
Это была ирония. Не может СУБД так. Данные удалять каскадно - умеет, если разрешить, но элементы физического и логического дизайна каскадно не удаляются.
Нет, это не ирония.
Зависимости собираются в БД.
Но зависимости нестрогие, и по документации требуется при изменении одного объекта ПЕРЕСОЗДАВАТЬ все зависящие от него объекты.
Тогда зависимости будут всегда актуально собранные.

Но так никто не делает, потому что у них же ЛАПКИ...
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
А нестрогие зависимости потому, что у процедур и других объектов рекурсия может быть.
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
А фукнция наверное там в чём-то типа индекса или констрейнта используется, иначе странно было бы...
Такие объекты легко удаляются даже если на них ссылаются.
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
Oleg T
Это была ирония. Не может СУБД так. Данные удалять каскадно - умеет, если разрешить, но элементы физического и логического дизайна каскадно не удаляются.
видимо, я избалован Visual Studio, который умел такое)
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
Нет, это не ирония.
Зависимости собираются в БД.
Но зависимости нестрогие, и по документации требуется при изменении одного объекта ПЕРЕСОЗДАВАТЬ все зависящие от него объекты.
Тогда зависимости будут всегда актуально собранные.

Но так никто не делает, потому что у них же ЛАПКИ...
Я бы сиронизировал на этом. Ну, терминологический вопрос. Из моего опыта лучше средство для избегания нецелостного дизайна это Data-tier Application и раскатка только через него. Тогда чтобы ты там ни накодил, оно либо развернётся верно, либо не развернётся.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Ilia Zviagin
А фукнция наверное там в чём-то типа индекса или констрейнта используется, иначе странно было бы...
Такие объекты легко удаляются даже если на них ссылаются.
МОжет там WITH SCHEMA_BINDING
источник

IZ

Ilia Zviagin in SqlCom.ru - Стиль жизни SQL
может...
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
Oleg T
МОжет там WITH SCHEMA_BINDING
неа
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Max Chistyakov
видимо, я избалован Visual Studio, который умел такое)
Вот если бы все использовали VS и деплоились бы нормальному, то не было бы печальной статистики, что из 80% продакшн баз нельзя просто взять и вынуть схему и накатить её в пустую БД рядом.
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Max Chistyakov
а субд не может сама определить, какой объект от какого зависит, чтобы  удалять их в правильном порядке?
У тебя эта функция используется в Default COntraint на таблице ORDERS на колонке CREATION скорее всего (Если название дефолтовое). Естессно СУБД не станет удалять функцию, которая является частью дизайна другой таблицы. СУБД не может принять решение что сделать с этой колонкой - убрать оттуда констрейнт или может вообще дропнуть колонку.
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
да, понимаю что оно выглядит примерно так. Может, в настройках где-то отключить можно;
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
но интересно, что установка по официальному руководству не учитывает того, что в объекты в БД могут зависеть друг от друга, и перед тем как удалять не выстраивает их в нужном порядке.

Скорее всего, я пропустил что-то в настройках, где это предусмотрено
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
Max Chistyakov
но интересно, что установка по официальному руководству не учитывает того, что в объекты в БД могут зависеть друг от друга, и перед тем как удалять не выстраивает их в нужном порядке.

Скорее всего, я пропустил что-то в настройках, где это предусмотрено
Что за софт? Там в руководстве сказано пойдите в БД и дропните функции?
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
Oleg T
Что за софт? Там в руководстве сказано пойдите в БД и дропните функции?
да стандартная настройка транзакционной репликации, из ssms. Перед т.р. необходимо делать и накатывать снэпшот, а он подразумевает собой пересоздание реплицируемых объектов, через DROP/CREATE
источник

O

Oleg T in SqlCom.ru - Стиль жизни SQL
А, да, не обратил внимания. Всё ясно. Снэпшот можно без Drop-Create делать, если обхекты на той стороне есть. в настройках это есть - что делать с имеющимися объектами.
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
спасибо. Так и знал, что надо повнимательней посмотреть в свойствах Articles
источник
2020 November 20

G

Gabriel in SqlCom.ru - Стиль жизни SQL
Может кто помочь с запросом?
источник

G

Gabriel in SqlCom.ru - Стиль жизни SQL
Нужно вывести поле которое принимает разные значения в других полях. Как мне задать в запросе это самое 'разное значение'?
источник

DB

Daniil Berdnikov in SqlCom.ru - Стиль жизни SQL
Gabriel
Может кто помочь с запросом?
Зависит от вопроса
Если начальный уровень, то в закрепе есть ссылка на другую группу
источник