none
Отслеживание изменений данных SQL Server RRS feed

  • Вопрос

  • Здравствуйте!

    У меня много баз, которые установлены на SQL Server 208 Express.  Я их собираю с одно, так называемое хранилище. В хранилище находятся такие же таблицы, как и в остальных базах, за исключением того, что в каждой таблице к ID  добавлен еще и внутренний ID (InnerID), и ID отделения (ID Department). Так я их различаю. Полагаю, что это не совсем правильно, но пока, что так. Затем есть сборщик на C#, который при  помощи Linq запросов проходит по всем базам и проверяет по последним InnerID не добавило ли чего нового и, если добавилось, то переписывает в центральную БД.

    Как-то по топорному это все получается, да и работает очень медленно.

    Так во вопрос:

    Есть ли возможность в Express версии отслеживать данные силами SQL Server и как-то добавлять их в центральную базу. Путь это будет в ручную, но все же быстрей, чем то, что я сделал.

     Искал различные варианты:

    - Change data capture - на сколько я понял в Express версии нет

    - Change tracking - не совсем разобрался в ней, но, мне кажется это не совсем то, что нужно (может ошибаюсь)


    28 февраля 2014 г. 12:56

Ответы

  • "Есть ли возможность в Express версии отслеживать данные силами SQL Server и как-то добавлять их в центральную базу. Путь это будет в ручную, но все же быстрей, чем то, что я сделал. " - был бы у вас полноценный сервер, можно было бы использовать джобы. Но в целом правильнее, как вы заметили, делать это средствами SQL Server. Используйте хранимые процедуры и дёргайте их планировщиком заданий.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Alexey110 4 марта 2014 г. 8:43
    1 марта 2014 г. 16:40
    Модератор

Все ответы

  • а как насчёт ADO.NET Disconnected Layer, у него есть нативные методы отслеживания изменении, сняли образ утром - а вечером merge


    28 февраля 2014 г. 14:34
  • На сколько я понял, что в ADO.NET Disconnected Layer базы должны быть одинаковые и обновление происходит в автоматическом режиме, а моя центральная база отличается от всех остальных. В каждой таблице к ID  добавлен еще и внутренний ID (InnerID), и ID отделения (ID Department). Если было бы возможно отслеживать в ручную...
    28 февраля 2014 г. 16:41
  • "Есть ли возможность в Express версии отслеживать данные силами SQL Server и как-то добавлять их в центральную базу. Путь это будет в ручную, но все же быстрей, чем то, что я сделал. " - был бы у вас полноценный сервер, можно было бы использовать джобы. Но в целом правильнее, как вы заметили, делать это средствами SQL Server. Используйте хранимые процедуры и дёргайте их планировщиком заданий.

    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа Alexey110 4 марта 2014 г. 8:43
    1 марта 2014 г. 16:40
    Модератор
  • Вы имеете в виду "Хранимые процедуры системы отслеживания измененных данных" ?

    http://technet.microsoft.com/ru-ru/library/bb500244.aspx

    2 марта 2014 г. 8:14
  • И их в том числе.

    Сделаем содержимое сообщества лучше, вместе!

    2 марта 2014 г. 8:17
    Модератор
  • А можете посоветовать что-нибудь конкретное, ну пример какой-нибудь?
    2 марта 2014 г. 15:15