Trigger Not Updating
One problem with your trigger is that it is potentially updating all rows in the table, even if only one row was updated or inserted. If someone accidentally sets the values to NULL, they'll then get updated to the current time, the next time the trigger runs. Does this make sense for your application? I would think it makes more sense to leave past values alone (deal with those separately, though it seems doubtful any still exist), and only bother updating rows that are currently impacted directly by the trigger. You do that by joining to the inserted pseudo-table:

UPDATE sr SET saledate = GETDATE()
  FROM dbo.salerecords AS sr
  INNER JOIN inserted AS i
  ON sr.key_column = i.key_column -- you'll need to update this
  WHERE sr.saledate IS NULL;


That said, I agree with @SoleDBAGuy, who suggested a default constraint. Here is how you could implement that:

ALTER TABLE dbo.salerecords
  ADD CONSTRAINT df_saledate DEFAULT (GETDATE()) FOR saledate;
GO
ALTER TABLE dbo.salerecords
  ALTER COLUMN df_saledate datetime NOT NULL;


And then drop the trigger. Note that the second command may fail; if you have null values in there already, it's hard to justify just giving them "right now" as their sale date, when they could potentially be years old. So you can look at those individually, or just apply some date to them all, like:

UPDATE dbo.salerecords SET saledate = GETDATE();
-- or
UPDATE dbo.salerecords SET saledate = '19000101'; -- beware magic number


Finally, please always use the schema prefix.