Шаблон из Visual Studio 2008 Add -> Stored Procedure Script
равен
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'Stored_Procedure_Name')
BEGIN
DROP Procedure Stored_Procedure_Name
END
GO
CREATE Procedure Stored_Procedure_Name
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
AS
GO
/*
GRANT EXEC ON Stored_Procedure_Name TO PUBLIC
GO
*/
Для процедуры Sql Server Management Studio выдает следующий скрипт для удаления
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_DeleteXyz]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[usp_DeleteXyz]
аналогично для функции генерируется скрипт
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[udf_GetXyz]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[udf_GetXyz]
Я чаще всего видел последние формы (двухстрочные версии) в большинстве кодовых баз, над которыми я работал, и нет необходимости объявлять переменную.