I have the following SQL update query triggered by the update process in an ASP.NET C# form..
UPDATE
[Data_TEST] SET
[Contact Phone] = @Contact_Phone
, [Contact] = @Contact
, [Contact Info Changed] = @Contact_Info_Changed
WHERE
(([Contact Phone] = @original_Contact_Phone) OR
([Contact Phone] IS NULL AND
@original_Contact_Phone IS NULL)) AND
(([Contact] = @original_Contact) OR
([Contact] IS NULL AND
@original_Contact IS NULL))
(([Contact Info Changed] = @original_Contact_Info_Changed) OR
([Contact Info Changed] IS NULL AND
@original_Contact_Info_Changed IS NULL))
I want to Change the Value of [Contact Info Changed] to 'Y' if [Contact Phone] OR [Contact] are changed during the update process.
If you have Primary or Unique Key in your that, that obviously you should have you can follow my script
IF OBJECT_ID('tempdb..#Data_TEST') IS NOT NULL
DROP TABLE #Data_TEST
create table #Data_TEST
(
ID int,
[Contact Phone] varchar(10),
[Contact] varchar(10),
[Contact Info Changed] char(1)
)
insert into #Data_TEST values
(1, 'Phone1', 'Contact1', 'N'),
(2, 'Phone2', 'Contact2', 'N')
declare @Contact_Phone varchar(10) = 'Phone2'
declare @Contact varchar(10) = 'Contact2'
UPDATE #Data_TEST
SET
[Contact Phone] = @Contact_Phone
, [Contact] = @Contact
, [Contact Info Changed] =
case
when
@Contact = (select [Contact] from #Data_TEST AS dt2 where dt2.ID = #Data_TEST.ID) AND
@Contact_Phone = (select [Contact Phone] from #Data_TEST AS dt2 where dt2.ID = #Data_TEST.ID)
then 'N'
else 'Y'
end
Assume your table as #Data_TEST and assume your Pk/UK is ID
This script compare the parameter value with what you currently have in table
Data before update
+----+---------------+----------+----------------------+
| ID | Contact Phone | Contact | Contact Info Changed |
+----+---------------+----------+----------------------+
| 1 | Phone1 | Contact1 | N |
| 2 | Phone2 | Contact2 | N |
+----+---------------+----------+----------------------+
Data after update
+----+---------------+----------+----------------------+
| ID | Contact Phone | Contact | Contact Info Changed |
+----+---------------+----------+----------------------+
| 1 | Phone2 | Contact2 | Y |
| 2 | Phone2 | Contact2 | N |
+----+---------------+----------+----------------------+
I removed your where clause as it had syntax error, but remember to add it to your final script.