Here is a trigger I used for updating a field when another field is changed or inserted.

Code:
CREATE TRIGGER UpdateTax ON Customer 
FOR INSERT, UPDATE, DELETE 
AS
declare @Addr varchar(50)

Select @Addr=i.sAddress 
 from Customer a inner join inserted i on a.sCustomerID =i.sCustomerID

if (@Addr like '%U.S.A%')

begin 

Update Customer set sTaxCode = 'USTax'
    where  exists ( select  * from Customer a inner join
                   inserted i on a.sCustomerID=i.sCustomerID )

end
The problem is when I updated one record, all records' sTaxCode fld in the Customer table were updated. I cann't figure out why. Thx