Ответы пользователя по тегу .NET
  • Как сделать единый составной ключ на разные таблицы?

    @edb
    SQL
    Я бы хранил продукты и полуфабрикаты в одной таблице с дополнительным полем Type. В таблице сохранить только общие атрибуты, а отличия вынести в отдельную EAV-таблицу.
    Ваш вариант с промежуточной таблицей тоже неплох, но немного менее гибок, да и внешние ключи на null значения, так себе решение.
    Ответ написан
    Комментировать
  • Опасно ли выполнять такой код в С# + T-SQL? Или каким способом можно написать по-другому?

    @edb
    SQL
    Ваш код не будет работать всегда предсказуемым образом. Основная проблема в том, что SELECT TOP без ORDER BY не гарантирует ни в коем случае одни и те же данные. Да, в вашем случае они скорее всего приходят в порядке из сохранения в кластерном индексе. Но если изменится индекс или добавится новый, то ваш код может перестать работать как ожидается.
    Другая проблема в том, что несмотря на то, что подзапросы в WHERE одинаковые, они могут возвращать разные данные из-за первого UPDATE. Если у вас было 10 записей с REPLICATED =-10 (минус!), то до первого обновления подзапрос выдаст записи с 1 по 5, а после него с 6 по 10.
    Совет: сохраните обновляемые ID в отдельную временную таблицу и присоединяйте ее для обновления.
    Либо настройте внешние ключи и каскадное обновление.
    Ответ написан
    8 комментариев