title: SQL Merge statement not working in Stored Procedure
body: <p>The following code does not seem to work. If the address does not exist, it does not insert the new record. However, if the address does exist, it does get updated.</p>
  
  <pre><code>ALTER PROCEDURE [Users].[UpdateAddress]
      @UserId int,
      @Address1 varchar(100),
      @Address2 varchar(100),
      @Town varchar(100),
      @County varchar(50),
      @PostCode varchar(50),
      @Country varchar(50),
      @Type INT
  AS
  
  MERGE [Users].[Addresses] AS Target
  USING (SELECT UserId FROM [Users].[Addresses] WHERE UserId = @UserId) AS Source
  ON (Source.UserId = Target.UserId)
  
  WHEN MATCHED THEN
      UPDATE SET Target.Address1 = @Address1,
      Target.Address2 = @Address2,
      Target.Town = @Town,
      Target.County = @County,
      Target.Postcode = @Postcode,
      Target.Country = @Country
  WHEN NOT MATCHED BY TARGET THEN
      INSERT ([UserId], [Address1], [Address2], [Town], [County], [PostCode], [Country], [Modified], [Type])
      VALUES(@UserId, @Address1, @Address2, @Town, @County, @PostCode, @Country, GetDate(), @Type);
  </code></pre>