Code:
GO
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'UpsertAddress')
BEGIN
PRINT 'Dropping Procedure UpsertAddress'
DROP Procedure UpsertAddress
END
GO
PRINT 'Creating Procedure UpsertAddress'
GO
CREATE Procedure UpsertAddress
@ContactId int,
@EventId int,
@AddressTypeId int,
@Address1 varchar(50),
@Address2 varchar(50) = null,
@Address3 varchar(50) = null,
@City varchar(50),
@State varchar(50),
@PostalCode varchar(50),
@CountryRegionId int,
@Latitude varchar(20) = null,
@Longitude varchar(20) = null,
@MapUrl varchar(255) = null,
@Id int OUTPUT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT Id FROM [dbo].Address (NOLOCK) WHERE ContactId=@ContactId
AND AddressTypeId = @AddressTypeId
AND EventId = @EventId)
BEGIN
SET @Id = (SELECT Id
FROM [dbo].[Address] (NOLOCK)
WHERE ContactId=@ContactId
AND AddressTypeId = @AddressTypeId
AND EventId = @EventId)
UPDATE [dbo].Address SET
Address1 = @Address1,
Address2 = @Address2,
Address3 = @Address3,
City = @City,
State = @State,
PostalCode = @PostalCode,
CountryRegionId = @CountryRegionId,
Latitude = @Latitude,
Longitude = @Longitude,
MapUrl = @MapUrl,
EventId = @EventId
WHERE Id = @Id
-- WHERE ContactId = @ContactId
-- AND AddressTypeId = @AddressTypeId
-- AND EventId = @EventId
END
ELSE
BEGIN
INSERT INTO [dbo].Address
(
ContactId,
AddressTypeId,
Address1,
Address2,
Address3,
City,
State,
PostalCode,
CountryRegionId,
Latitude,
Longitude,
MapUrl,
EventId
)
VALUES
(
@ContactId,
@AddressTypeId,
@Address1,
@Address2,
@Address3,
@City,
@State,
@PostalCode,
@CountryRegionId,
@Latitude,
@Longitude,
@MapUrl,
@EventId
)
SELECT @ID = @@IDENTITY
END
END
GO
GRANT EXEC ON UpsertAddress TO PUBLIC
GO