sql-server - это - хранимые процедуры sql server примеры




Как добавить хранимые процедуры в систему контроля версий (4)

Второе решение от @Darryl не сработало, как предложено @Moe. Я изменил шаблон @ Darryl и заставил его работать, и подумал, что было бы неплохо поделиться им со всеми.

IF NOT EXISTS(SELECT name FROM sysobjects
              WHERE name = '<Stored Proc Name>' AND type = 'P' AND uid = '1')   
    EXEC sp_executesql N'CREATE PROCEDURE dbo.<Stored Proc Name>
    AS
    BEGIN
        select ''Not Implemented''
    END
    '
GO

ALTER PROCEDURE dbo.<Stored Proc Name>
AS  
BEGIN
  --Stored Procedure Code 
End

Это действительно хорошо, потому что я не теряю свои права на хранимые процедуры.

Наша команда впервые столкнулась с проблемой отсутствия контроля версий для нашей БД. Как мы можем добавить хранимые процедуры, по крайней мере, для контроля версий? Нынешняя система, которую мы разрабатываем, опирается в основном на SP.


Мы просто добавляем оператор CREATE в систему управления версиями в файле .sql, например:

-- p_my_sp.sql
CREATE PROCEDURE p_my_sp
AS
    -- Procedure

Убедитесь, что вы поставили только один SP на файл, и что имя файла точно соответствует имени процедуры (это значительно упрощает поиск процедуры в системе контроля версий)

Тогда вам просто нужно быть дисциплинированным, чтобы не применять хранимую процедуру к вашей базе данных, которая не была получена из системы контроля версий.

Альтернативой может быть сохранение SP как оператора ALTER вместо этого - это имеет преимущество, заключающееся в упрощении обновления существующей базы данных, но означает, что вам нужно внести некоторые изменения для создания новой пустой базы данных.


Я думаю, что хорошо, чтобы каждая хранимая процедура была записана в отдельный файл .sql, а затем просто зафиксировать эти файлы в системе контроля версий. Каждый раз, когда изменяется sproc, обновляйте сценарий создания - это дает вам полную историю версий для каждого отдельного элемента.

Существуют инструменты управления исходным кодом SQL Server, которые подключаются к SSMS, но я думаю, что они просто пишут сценарии объектов db и фиксируют эти сценарии. Red Gate, похоже, из-за выпуска такого инструмента, например, в этом году.


Я определенно рекомендую какой-нибудь сторонний инструмент, который интегрируется в SSMS. Помимо упомянутого выше SQL Source Control, вы также можете попробовать версию SQL от Apex.

Важно сделать это действительно простым для разработчиков, если вы хотите, чтобы они его использовали, и лучший способ - использовать инструмент, который интегрируется в SSMS.





stored-procedures