Да. Весь код должен храниться в системе контроля версий.
Проще говоря, код - это код, и случаются ошибки. Приятно иметь возможность вернуться и посмотреть, что изменилось со временем, и иметь возможность вернуться к этим изменениям.
Мы должны добавить его вручную в систему управления версиями, но вы можете создавать дополнения для Sql Server в Системе управления. Я никогда не создавал такой, чтобы автоматически добавлять его в систему контроля версий, но, полагаю, вы могли бы. Кроме того, весь код хранится в таблицах sql, так что теоретически вы можете создать процесс или что-то, чтобы пройти через таблицы, получить весь код и автоматически его зафиксировать.
Обновление: я бы всегда писал дополнительный код, чтобы проверить и проверить, существует ли код и не создает ли он процедуру-заполнитель, а затем сам скрипт выполняет и изменяет процедуру.
IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE
id = OBJECT_ID(N'[dbo].[SomeStoredProcedure]') AND
OBJECTPROPERTY(id,N'IsProcedure') = 1)
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[SomeStoredProcedure] AS
SELECT ''SPROC Template'''
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE SomeStoredProcedure
Выполнение удаления и повторного создания приведет к удалению всех пользовательских разрешений, которые вы для него настроили.