Что-то вроде SVN за возможность видеть изменения между двумя экземплярами одного и того же сервера базы данных sql? - PullRequest
1 голос
/ 06 января 2012

У нас есть среда разработки, qa, промежуточная среда и есть проблемы с изменениями в БД, которые не объединяются с изменениями кода, и при попытке решить проблему было бы неплохо, если бы мы могли найти способ, подобный svn, посмотреть, какие представления /таблицы / хранимые процедуры были изменены добавлены или удалены.Кто-нибудь знает о существовании такого инструмента?Спасибо - Дункан Кребс

Ответы [ 3 ]

1 голос
/ 06 января 2012

AdeptSQL

или

в Visual Studio: Сравнение данных> данных

или

Сравнение SQL, как указано вдругой ответ

1 голос
/ 06 января 2012

Есть много коммерческих инструментов, которые могут сделать это.Visual Studio есть, но я чувствую, что SQL Compare является лучшим.Существует также OpenDBDiff , но комментарий к ответу , в котором рекомендуется, что он не так хорош.

0 голосов
/ 25 января 2012

Вы можете отслеживать изменения схемы в SQLServer 2005/2008 с помощью триггеров DDL.

  1. Создать базу данных для захвата всех DDL.Мы называем это VCS
  2. Создать таблицу в этой базе данных:

     CREATE TABLE ddl_log(
        ddl_log_id int IDENTITY PRIMARY KEY
        ,ddl_date datetime 
        ,EventType sysname
        ,database_name sysname
        ,schema_name sysname
        ,object_name sysname
        ,ddl xml
    )
    
  3. Для каждой базы данных, которую вы хотите отследить, DDL делает.

    ALTER TRIGGER ddl_log 
    ON DATABASE 
    FOR DDL_DATABASE_LEVEL_EVENTS 
    AS
    DECLARE @data XML;
    SET @data = EVENTDATA();
    INSERT VCS.dbo.ddl_log 
        (ddl_date, EventType, database_name, schema_name, object_name, ddl)
    SELECT
       GETDATE() 
       ,@data.value('(/EVENT_INSTANCE/EventType)[1]', 'sysname')
       ,@data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'sysname') 
       ,@data.value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname') 
       ,@data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname') 
       ,@data
    

Вы простая система управления версиями в SQLServer.

Если вы хотите интегрировать ее с вашей VCS:

  1. Создать сценарий PowerShell для сценариеввсе измененные объекты в файловой системе.Запланируйте это.

  2. Расписание регистрации для вашего VCS

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