Процедура SQL, чтобы вернуть какой столбец в какой таблице изменился - PullRequest
0 голосов
/ 23 марта 2012

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

Это вообще возможно?Я гуглил это, но ничего не мог получить?есть идеи, пожалуйста?

Ответы [ 3 ]

1 голос
/ 23 марта 2012

Вы можете сделать это, внедрив триггеры в свои таблицы. Пожалуйста, обратитесь к этим CREATE TRIGGER и UPDATE () .

А вот и теория: Триггеры DML

0 голосов
/ 23 марта 2012

В дополнение к ответу Андрея, вам нужно будет использовать таблицы INSERTED и DELETED, чтобы выяснить, какие использовались / обновлены прошлые и новые значения, и зарегистрировать их соответствующим образом.

0 голосов
/ 23 марта 2012

Фраза, которую вы должны искать, это «Аудит», и существует довольно много хранимых процедур, которые делают то, что вы хотите. Они приводятся в действие триггерами и записывают строки в другую таблицу на основе действий. Возможно, вам придется изменить их, чтобы указать, какой пользователь выполнил действие.

Попробуйте что-то вроде этого: http://www.geekzilla.co.uk/ViewECBC0CC3-1C7E-4E7E-B243-F2F259A5C920.htm

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