Showing posts with label SQL query for find the difference between two tables data. Show all posts
Showing posts with label SQL query for find the difference between two tables data. Show all posts

SQL query for find the difference between two tables data

USE [ERM_CUSTOM]
GO
/****** Object:  StoredProcedure [dbo].[ERM_MSP_ ResourceCompareAndUpdate]    Script Date: 8/17/2016 7:52:02 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- Exec  [dbo].[ERM_MSP_ ResourceCompareAndUpdate]

ALTER PROCEDURE [dbo].[ERM_MSP_ ResourceCompareAndUpdate]  
AS
BEGIN
SELECT  ResourceUID,
        ResourceName,
        ResourceEmailAddress,
        WWID 
INTO #TempResource
FROM [ERM].[MSP_EpmResource_UserView] -- Gets all data from view and Stored on a temp table.

CREATE TABLE #TempDifferenceResource (    ResourceUID nvarchar(max), 
                                        ResourceName nvarchar(max),
                                        ResourceEmialAddrss nvarchar(max),
                                        WWID nvarchar(max)
                                    ) --- create another temp table
  
  INSERT INTO   #TempDifferenceResource
     SELECT * FROM #TempResource 
        EXCEPT
    SELECT * FROM [dbo].[ResouceCompare]  -- insert difference data to the temp table

UPDATE
    base
SET
    base.ResourceName = tempDiff.ResourceName,
    base.ResourceEmialAddrss = tempDiff.ResourceEmialAddrss ,
    base.WWID = tempDiff.WWID
FROM
    [dbo].[ResouceCompare] base
    JOIN
    #TempDifferenceResource tempDiff 
ON    base.ResourceUID=tempDiff.ResourceUID -- update existing date to base table


insert into [dbo].[ResouceCompare]
select tempDiff.ResourceUID,tempDiff.ResourceName,tempDiff.ResourceEmialAddrss,tempDiff.WWID FROM
    [dbo].[ResouceCompare] base
    JOIN
    #TempDifferenceResource tempDiff 
ON    base.ResourceUID<>tempDiff.ResourceUID -- insert new data to base table

select * from  [dbo].[ResouceCompare]

DROP TABLE #TempResource
DROP TABLE #TempDifferenceResource

END