Отслеживание изменений кода хранимых процедур, функций и таблиц в MSSQL
Вообще элементарно. Триггер на базу. 

Шаг первый: 

CREATE TABLE [dbo].[tbl_ListChange](
 [LoginName] [varchar](2000) NULL,
 [HostName] [varchar](100) NULL,
 [ObjectName] [varchar](100) NULL,
 [ObjectType] [varchar](100) NULL,
 [EventType] [varchar](100) NULL,
 [EventSQLCommand] [varchar](max) NULL,
 [EventTime] [datetime] NOT NULL,
 [XMLChange] [xml] NULL,
 [Id] [int] IDENTITY(1,1) NOT NULL,
 CONSTRAINT [PK_tbl_ListChange] PRIMARY KEY CLUSTERED 
(
 [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]

GO

EXEC sys.sp_addextendedproperty name=N'MS_Description', value=N'Полностью xml команда, содержащая все вообще ', @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'tbl_ListChange', @level2type=N'COLUMN',@level2name=N'XMLChange'
GO

Шаг второй: — триггер на базу:

CREATE TRIGGER [tgr_DDLListChange]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS

 — Каретников. 25-03-2010. Мониторинг всех изменений в базе 

SET NOCOUNT ON 

DECLARE @dataXML XML
SET @dataXML = EVENTDATA() — получил данные по текущему событию. 

IF (
 SELECT @dataXML.value('(/EVENT_INSTANCE/ObjectName)[1]' ,'varchar(max)')
 ) IS NOT NULL
BEGIN
 INSERT dbo.tbl_ListChange
 (
 LoginName — под чьим логином
 ,HostName — на чьей машине
 ,ObjectName — что изменено
 ,ObjectType — тип измененного обьекта
 ,EventType — тип изменения
 ,EventSQLCommand — полностью SQL команда
 ,EventTime — во сколь изменено
 ,XMLChange — полностью вся хмл-команда
 )
 VALUES
 (
 @dataXML.value('(/EVENT_INSTANCE/LoginName)[1]' ,'varchar(2000)') — под чьим логином
 ,HOST_NAME() — на чьей машине
 ,@dataXML.value('(/EVENT_INSTANCE/ObjectName)[1]' ,'varchar(100)') — что изменено
 ,@dataXML.value('(/EVENT_INSTANCE/ObjectType)[1]' ,'varchar(100)') — тип измененного обьекта
 ,@dataXML.value('(/EVENT_INSTANCE/EventType)[1]' ,'varchar(100)') — тип изменения
 ,@dataXML.value('(/EVENT_INSTANCE/TSQLCommand)[1]' ,'varchar(max)') — полностью SQL команда
 ,GETDATE()
, @dataXML
 ) — во сколь изменено 
END 


GO
Можете попробовать создать проект  базы данных в VS2010 и выше.
Натравливаете мастер на вашу БД, получившийся проект кладете под версионное хранения (Git, Subversion, ...), дальше разработчики открывают проект в VS2010, правят код и публикуют на сервере уже только из проекта.
Преимущества
Можете начать писать модульные тесты на БД.
PS
Веду разработку большой CRM для строительной компании, сотни таблиц, все устраивает.