Creating an Upsert Stored Procedure


Author
Message
Jeff Pagley
Jeff Pagley
Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)
Group: StrataFrame Users
Posts: 223, Visits: 893
Hi SF Team,

In the training course and manual was a stored procedure that was referred to called an Upsert.  Could you please give me a T-SQL example of this sproc for updating/inserting a group records at one time.

Thanks,

Jeff

Replies
Jeff Pagley
Jeff Pagley
Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)
Group: StrataFrame Users
Posts: 223, Visits: 893
Thanks for the sproc.  However, what I was looking for is a sproc which first tries to update the record, and if the affected record count is 0, then the sproc assumes that the record does not exist to update, so it inserts the record.  I think I know how I am going to create it, but I haven't done it yet.

Jeff

Trent Taylor
Trent Taylor
StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)StrataFrame Developer (14K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 7K
Jeff, it would look something like this:

@userPk INT,
@eventLocationPk BIGINT
AS
BEGIN

-- Turn off row counting
SET NOCOUNT ON;

-- Declare variables
DECLARE @recCount INT;

-- Perform a scalar query to determine if the
-- record already exists
SELECT
 @recCount = COUNT(* )
FROM UserLocations
WHERE ul_us_pk = @userPk

-- Now determine how to update the record
IF @recCount > 0
 BEGIN
  -- Update the existing record
  UPDATE UserLocations
   SET ul_vel_pk = @eventLocationPk
  WHERE ul_us_pk = @userPk
 END
ELSE
 BEGIN
  -- Create the location record
  INSERT INTO UserLocations (
   ul_us_pk,
   ul_vel_pk)
   VALUES (    
   @userPk,
   @eventLocationPk)
 END
 
END 
 


Jeff Pagley
Jeff Pagley
Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)Advanced StrataFrame User (641 reputation)
Group: StrataFrame Users
Posts: 223, Visits: 893
Hi Trent,

Thank you for taking the time to send me the example.  It was what I was looking for.

Jeff

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search