.Net SQL Server Database Monitoring - Вставьте, обновите, удалите

Единственный способ использовать замену строк для данных этого типа

$as = '{"name":"Daniel"}{}{}{}{},"age":"{5}"}';
$as = str_replace('{}','', $as);
$as = str_replace('"{','', $as);
$as = str_replace('"}','', $as);
$as = str_replace('{','', $as);
$as = str_replace('}','', $as);
$as = str_replace('"name":"','', $as);
$as = str_replace('"age":','', $as);
$as = explode(',', $as);
print_r($as);
6
задан CuppM 4 December 2008 в 20:55
поделиться

5 ответов

В SQL Server 2008 у Вас есть Отслеживание изменений, которое можно отследить, когда вставка, обновите или удалите, происходит. Это отследит это, случай произошел, которые записывают его, был и дополнительно какие столбцы были изменены, но не значения (перед и после). Это обычно используется для выполнения объемных процессов с известными измененными данными.

В отслеживании изменений Вы устанавливаете период хранения для содержания изменений, обычно период, который удостоверяется, любая обработка отслеженных таблиц в течение периода хранения.

Кроме того, у Вас есть (снова в SQL 2008) Сбор данных Изменения, который более детализирован и записывает фактические изменения. Это, однако, является функцией предприятия только.

Можно легко создать приложение.NET для выполнения отслеживания изменений или запросов сбора данных изменения.

Вот ссылка на дополнительную информацию об обоих

Отслеживание изменений

Сбор данных изменения

По большей части Отслеживание изменений, вероятно, будет наилучшим вариантом - плюс он работы во всех версиях SQL Server 2008.

Если Вы хотите достигнуть этого в 2005 или ниже, можно в основном составить таблицы для каждой таблицы, которую Вы хотите быть прослеженными и иметь триггер, чтобы вставить значения в таблицу отслеживания на вставке, обновить, удалить. Затем имейте процесс для очистки этого вниз. Это в основном, что Отслеживание изменений делает для Вас.

2
ответ дан 10 December 2019 в 02:55
поделиться

Этот сценарий обычно не масштабируется очень хорошо..., Вы могли изучить сервисы уведомления SQL, но это имеет те же проблемы.

В одной системе я делаю это при наличии триггеров, которые пишут краткий обзор изменений в (единственной) таблице дельты, включая таблицу, тип изменения и идентификатор строки. Каждый клиент поддерживает, "где я читал в", и просто просит все записи дельты с идентификатором> это число. Проблема - Вы, должен сделать некоторый умный материал, чтобы очистить вниз таблицу, не повреждая отдельной клиентской истории изменений... т.е. выходов из системы дорожки, предположить, что они - мертвое прошлое данное время и журнал, когда они делают полное обновление.

Определенно выполнимый, но большая работа.

0
ответ дан 10 December 2019 в 02:55
поделиться

Я лично не использовал его, но это кажется, что Notification Services достойная внимания

Больше здесь...

0
ответ дан 10 December 2019 в 02:55
поделиться

Я думаю, что неправильно читал вопрос.

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

Или действительно ли это - разъединенное приложение, где Вы хотите синхронизировать изменения?

Для разъединенных приложений Вы могли использовать syncservices для SQL Server.

Кроме этого, просто используйте LINQ для Объектов, и он можно обработать конфликты при сохранении объектных изменений. Для обеспечения запросов, произведенных LINQ, производительны, Вы могли добавить столбец TIMESTAMP к каждой таблице, но это не требуется.

0
ответ дан 10 December 2019 в 02:55
поделиться

Для отслеживания изменений в таблице или записи SQL в SQL 2005+ вы можете использовать класс SqlDependency.

Он предназначен для использования в ASP.NET или службах среднего уровня, где один сервер управляет активными подписками на базу данных, а не несколько сотен клиентов, управляющих подписками. В зависимости от максимального количества клиентов, на которых вы ссылаетесь, вы можете захотеть создать службу пула кеша, которая может управлять подписками на уведомления для SQL для ваших клиентов.

Внутри он использует SqlNotificationRequest, который использует Service Broker, а не службы Notification Services. Таким образом, это должно работать в будущем с SQL 2008 и т. Д.

MSDN для SqlDependency

void Initialization()
{
    // Create a dependency connection.
    SqlDependency.Start(connectionString, queueName);
}

void SomeMethod()
{
  // Assume connection is an open SqlConnection.

  // Create a new SqlCommand object.
  SqlCommand command=new SqlCommand(
    "SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", 
    connection);

  // Create a dependency and associate it with the SqlCommand.
  SqlDependency dependency=new SqlDependency(command);
  // Maintain the refence in a class member.

  // Subscribe to the SqlDependency event.
  dependency.OnChange+=new OnChangeEventHandler(OnDependencyChange);

  // Execute the command.
  command.ExecuteReader();
  // Process the DataReader.
}

// Handler method
void OnDependencyChange(object sender, 
   SqlNotificationsEventArgs e )
{
  // Handle the event (for example, invalidate this cache entry).
}

void Termination()
{
    // Release the dependency.
    SqlDependency.Stop(connectionString, queueName);
}

« Использование и мониторинг уведомлений о запросах SQL 2005 »

7
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: