LISTING 2: Stored Procedures That Track Who Made a Change and When CREATE PROCEDURE CustomerUpdate @CustomerID nchar(10), @CompanyName nvarchar(80),@ContactName nvarchar(60),=NULL, @ContactTitle nvarchar(60)=NULL,@Address nvarchar(120)=NULL, @City nvarchar(30)=NULL,@Region nvarchar(30)=NULL @PostalCode nvarchar(20)=NULL,@Country nvarchar(30)=NULL @Phone nvarchar(48)=NULL,@Fax nvarchar(48)=NULL AS SET NOCOUNT ON UPDATE Customers SET CompanyName=@CompanyName, ContactName=@ContactName, ContactTitle=@ContactTitle,Address=@Address, City=@City,Region=@Region, PostalCode=@PostalCode,Country=@Country, Phone=@Phone,Fax=@Fax, au_user_name=user_name(),au_update_date=getdate() WHERE CustomerID=@CustomerID RETURN @@error SET NOCOUNT OFF CREATE PROCEDURE CustomerInsert @CustomerID nchar(10), @CompanyName nvarchar(80),@ContactName nvarchar(60)=NULL @ContactTitle nvarchar(60)=NULL,@Address nvarchar(120)=NULL @City nvarchar(30)=NULL,@Region nvarchar(30)=NULL @PostalCode nvarchar(20)=NULL,@Country nvarchar(30)=NULL @Phone nvarchar(48)=NULL,@Fax nvarchar(48)=NULL AS SET NOCOUNT ON INSERT INTO Customers (CustomerID,CompanyName,ContactName,ContactTitle, Address,City,Region,PostalCode, Country,Phone,Fax,au_user_name,au_update_date) VALUES (@CustomerId,@CompanyName,@ContactName, @ContactTitle,@Address,@City, @Region,@PostalCode,@Country,@Phone,@Fax,user_name(),getdate()) RETURN @@error SET NOCOUNT OFF