IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_TestObjectTemplatesUpdateInsert]') AND type in (N'P', N'PC')) DROP PROCEDURE [dbo].[sp_TestObjectTemplatesUpdateInsert] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_TestObjectTemplatesUpdateInsert]') AND type in (N'P', N'PC')) BEGIN EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[sp_TestObjectTemplatesUpdateInsert] AS' END GO ALTER PROCEDURE [dbo].[sp_TestObjectTemplatesUpdateInsert] @TemplateName nvarchar(255) = null ,@Icon nvarchar(50) ,@Description nvarchar(50) ,@LocalOnly bit ,@Version int ,@LastModifiedBy nvarchar(50) ,@CRC32 int ,@ISOTestObject nvarchar(255) ,@TestObjectType nvarchar(255) ,@LastModified datetime ,@ParentTemplate nvarchar(50) ,@SysBuilt bit ,@OrigTemplateName nvarchar(255) ,@Embedded bit ,@new_id int output ,@errorNumber int output ,@errorMessage nvarchar(250) output AS BEGIN set @errorNumber = 0; set @errorMessage = space(0); declare @TemplateId int set @TemplateId = dbo.foo_IdGetTemplate(@TemplateName) if(exists(select TemplateId from [dbo].[TestObjectTemplates] where TemplateId = @TemplateId)) begin set @new_id = @TemplateId exec dbo.sp_TestObjectTemplatesUpdate @TemplateName ,@Icon ,@Description ,@LocalOnly ,@Version ,@LastModifiedBy ,@CRC32 ,@ISOTestObject ,@TestObjectType ,@LastModified ,@ParentTemplate ,@SysBuilt ,@OrigTemplateName ,@Embedded ,@errorNumber output ,@errorMessage output end else begin exec dbo.sp_TestObjectTemplatesInsert @TemplateName ,@Icon ,@Description ,@LocalOnly ,@Version ,@LastModifiedBy ,@CRC32 ,@ISOTestObject ,@TestObjectType ,@LastModified ,@ParentTemplate ,@SysBuilt ,@OrigTemplateName ,@Embedded ,@new_id output ,@errorNumber output ,@errorMessage output end END GO