Как выяснить, сколько таблиц затрагивается в базе данных после вставки записи? - PullRequest
3 голосов
/ 26 января 2010

Одно стороннее приложение хранит данные в огромной базе данных (SQL Server 2000/2005).В этой базе более 80 таблиц.Как я узнаю, сколько таблиц подвержено влиянию, когда приложение сохраняет новую запись в базе данных?Могу ли я получить список затронутых таблиц?

Ответы [ 5 ]

3 голосов
/ 26 января 2010

Вы можете узнать, запустив трассировку в SQL Profiler в базе данных - событие SQL: StmtCompleted , вероятно, является тем, которое нужно отслеживать - т.е. Последовательности вставок в несколько таблиц, вы должны увидеть их в Profiler.

2 голосов
/ 26 января 2010

Вы можете использовать SQL Profiler для отслеживания SQL-запросов. Таким образом, вы увидите последовательность вызовов, вызванных одним нажатием кнопки в вашем приложении.

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

1 голос
/ 20 октября 2015

Если у вас есть сценарий SQL, который использовался для хранения новой записи (обычно это должен быть оператор вставки или другой оператор DML, такой как update, merge и т. Д.). Тогда вы можете знать, сколько таблиц было затронуто при разборе этих SQL-скриптов.

Взять этот SQL, например:

Insert into emp(fname, lname)
Values('john', 'reyes')

Вы можете получить такой результат:

sstinsert
 emp(tetInsert)

Tables:
emp

Fields:
emp.fname
emp.lname
0 голосов
/ 26 января 2010

Profiler - это путь, как другие говорили, особенно с незнакомой сторонней базой данных.

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

0 голосов
/ 26 января 2010

вы можете добавить триггеры в таблицы, которые запускаются при обновлении - вы можете использовать это для обновления таблицы журнала, которая будет сообщать о том, что обновляется.

подробнее здесь: http://www.devarticles.com/c/a/SQL-Server/Using-Triggers-In-MS-SQL-Server/

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