Define procedure to insert or update
1> 2> create table employee( 3> ID int, 4> name nvarchar (10), 5> salary int, 6> start_date datetime, 7> city nvarchar (10), 8> region char (1)) 9> GO 1> 2> insert into employee (ID, name, salary, start_date, city, region) 3> values (1, 'Jason', 40420, '02/01/94', 'New York', 'W') 4> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (2, 'Robert',14420, '01/02/95', 'Vancouver','N') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (3, 'Celia', 24020, '12/03/96', 'Toronto', 'W') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (4, 'Linda', 40620, '11/04/97', 'New York', 'N') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (5, 'David', 80026, '10/05/98', 'Vancouver','W') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (6, 'James', 70060, '09/06/99', 'Toronto', 'N') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (7, 'Alison',90620, '08/07/00', 'New York', 'W') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (8, 'Chris', 26020, '07/08/01', 'Vancouver','N') 3> GO 1> insert into employee (ID, name, salary, start_date, city, region) 2> values (9, 'Mary', 60020, '06/09/02', 'Toronto', 'W') 3> GO 1> 2> select * from employee 3> GO ID name salary start_date city region ----------- ---------- ----------- ----------------------- ---------- ------ 1 Jason 40420 1994-02-01 00:00:00.000 New York W 2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N 3 Celia 24020 1996-12-03 00:00:00.000 Toronto W 4 Linda 40620 1997-11-04 00:00:00.000 New York N 5 David 80026 1998-10-05 00:00:00.000 Vancouver W 6 James 70060 1999-09-06 00:00:00.000 Toronto N 7 Alison 90620 2000-08-07 00:00:00.000 New York W 8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N 9 Mary 60020 2002-06-09 00:00:00.000 Toronto W 1> 2> 3> --Altering Objects 4> /* 5~ Checks for existing Employee record 6~ If exists, updates the record. If not, 7~ inserts new record 8~ */ 9> 10> CREATE PROCEDURE spInsertOrUpdateEmployee 11> -- Input parameters -- 12> @Name nVarChar(50), 13> @salary Money 14> AS 15> IF EXISTS (SELECT * FROM Employee WHERE name = @name) 16> UPDATE Employee 17> SET Salary = @salary 18> WHERE Name = @Name 19> ELSE 20> INSERT INTO Employee (Name, salary) 21> SELECT @Name, @salary 22> IF @@Error <> 0 23> RAISERROR 50001 'spInsertUpdateProduct execution' 24> GO 1> 2> EXEC spInsertOrUpdateEmployee 'Mary', 999999 3> GO 1> 2> select * from employee 3> GO ID name salary start_date city region ----------- ---------- ----------- ----------------------- ---------- ------ 1 Jason 40420 1994-02-01 00:00:00.000 New York W 2 Robert 14420 1995-01-02 00:00:00.000 Vancouver N 3 Celia 24020 1996-12-03 00:00:00.000 Toronto W 4 Linda 40620 1997-11-04 00:00:00.000 New York N 5 David 80026 1998-10-05 00:00:00.000 Vancouver W 6 James 70060 1999-09-06 00:00:00.000 Toronto N 7 Alison 90620 2000-08-07 00:00:00.000 New York W 8 Chris 26020 2001-07-08 00:00:00.000 Vancouver N 9 Mary 999999 2002-06-09 00:00:00.000 Toronto W 1> 2> drop table employee 3> drop procedure spInsertOrUpdateEmployee 4> GO 1> 2>