Сравнение двух строк для одной и той же таблицы несколько раз - PullRequest
0 голосов
/ 12 июля 2010

У меня есть таблица SQLServer, которая содержит данные снимка.Мне нужно сравнить последнюю строку с предыдущей и определить, изменились ли определенные столбцы.Мне нужно сделать это несколько раз, сравнивая различные комбинации столбцов, до 40 одновременно.Каждый раз, когда значение столбца отличается в одной из комбинаций, мне нужно создать XML-документ, содержащий последние значения.Я ожидаю, что в каждой строке будет хотя бы один XML-документ.

Где лучше всего проводить сравнение, если я делаю это в хранимых процедурах, по одному на каждую комбинацию столбцов.Или я должен извлечь целые строки через ADO.NET и сравнить их в коде?Есть ли простой способ сделать сравнение?

Ответы [ 3 ]

2 голосов
/ 12 июля 2010

Вы не предоставили достаточно подробностей (DDL, примеры и т. Д.), Чтобы знать, хотите ли вы это делать, но ...

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

В триггере у вас есть возможность запросить статус столбца, чтобы узнать, был ли он обновлен.

0 голосов
/ 12 июля 2010

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

Тем не менее, мне интересно, почему вы делаете это таким образом, и если это возможно, чтобы решить проблему под другим углом.

0 голосов
/ 12 июля 2010

Сравнение строк через ADO.Net на первый взгляд кажется гладким , но может очень быстро устареть. По мере увеличения объема данных время выполнения также будет увеличиваться.

Сравнение в SQL Server - лучший выбор для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...