Примечание: я не спрашиваю о полном контроле версий.
Есть ли способ автоматически вести историю хранимых процедур на SQL Server.
Аналогично тому, как Google Docs автоматически ведет историю версий документов, а Wikipedia автоматически ведет историю версий статей.
Я не хочу, чтобы пользователи, обновляющие хранимые процедуры, также имели хранилище хранимых процедур. Это слишком много работы, и люди не будут делать это.
Надеюсь, это то, что я могу включить в SQL Server ...
(И под хранимыми процедурами на самом деле я имею в виду функции, триггеры и т. Д. В основном все под программируемостью.)
Сначала я разместил на /programming/14522224/how-to-keep-history-of-sql-server-stored-procedure-revisions, потому что я подозреваю, что там будет больше просмотров.
Ответы:
Хотя я полностью согласен с тем, что управление исходным кодом является правильным способом сделать это, я также понимаю, что не все среды достаточно дисциплинированы, чтобы полагаться только на это (если вообще), и что иногда необходимо вносить изменения напрямую, чтобы сохранить приложение работает, спаси клиента, что у тебя.
Вы можете использовать триггер DDL, чтобы хранить все ревизии в таблице в отдельной базе данных (и, конечно, часто выполнять резервное копирование этой базы данных). Предполагая, что у вас есть база данных утилит:
Теперь в вашей базе данных, давайте сначала возьмем то, что мы будем называть «начальный контроль» - текущая версия хранимых процедур:
Теперь, чтобы зафиксировать последующие изменения, добавьте триггер DDL в базу данных:
Со временем станет легко видеть и сравнивать изменения в процедурах, наблюдать за добавлением новых процедур в систему, видеть, как процедуры сбрасываются, и иметь хорошее представление о том, с кем можно поговорить о любом из этих событий.
Больше информации здесь:
http://www.mssqltips.com/sqlservertip/2085/sql-server-ddl-triggers-to-track-all-database-changes/
источник
Я не думаю, что есть какой-либо способ автоматически держать ваш исходный код SQL под контролем версий. Я имею в виду инструменты Native SQL Server. Я думаю, что вы могли бы в конечном итоге использовать git или svn, но лучшее решение для меня - это купить Source Control от Red Gate для хранения баз данных (и хранимых процедур) под контролем версий.
источник