you need at least a table variable in betweenlike belowdeclare @TableA table(ID varchar(10),FirstName varchar(50),[Status] int)insert @TableAvalues('01', 'Person A', 1),('02', 'Person B', 1),('03', 'Person C', 0),('04', 'Person D', 0)declare @TableB table(ID varchar(10),FirstName varchar(50))insert @TableBvalues('01', 'Person A'),('02', 'Person B')declare @Inserted_IDs table(ID varchar(10))insert @TableBOUTPUT INSERTED.ID INTO @Inserted_IDsselect ID,FirstnameFROM @TableA aWHERE NOT EXISTS ( SELECT 1 FROM @TableB WHERE FirstName = a.FirstName)UPDATE aSET Status=1FROM @TableA aJOIN @Inserted_IDs iON i.ID = a.IDSELECT * FROM @TableASELECT * FROM @TableBoutput---------------------------------------------------ID	FirstName	Status-------------------------------------01	Person A	102	Person B	103	Person C	104	Person D	1ID	FirstName-----------------------01	Person A02	Person B03	Person C04	Person DAlso not sure why you're having ID field as varchar.Its better to make it integer type otherwise you may have difficulty in manipulations using it------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/