Efficient method to update character length of columns in large table
I would suggest the following steps


When possible, change your database recovery mode to Simple Recovery if otherwise
Drop your index(es) on the two varchar(max) columns (as you will need to rebuild it anyway)
Run the following

update MyTable Set MyCol_X=substring(MyCol_X, 1, 255), MyCol_Y=substring(MyCol_Y, 1, 255);
Alter table to change the column data type

alter table MyTable alter column MyCol_X varchar(255);

alter table MyTable alter column MyCol_Y varchar(255);
Rebuild your indexes that were dropped
Set recovery mode to previous state before step 1 is executed