If you forget this first step ("1. Add a uniqueidentifier column with the rowguid and not null column attributes to the tables that will be used in merge replication.") , you will get a nasty error...
Error:
Message: {call sp_MSsetconflicttable (N'FirstTableinPublication', N'MSmerge_conflict_pub_pubname_fistTableinPublication', N'publisher_name', N'databasename', N'publication_name)}
Source: SERVER\INSTANCE
Number: 102
Message: Incorrect syntax near 'FirstColumnInTable'.
Source: Merge Replication Provider
Number: -2147201001
Message: The merge process was unable to deliver the snapshot to the Subscriber. If using Web synchronization, the merge process may have been unable to create or write to the message file. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write.
You have to add the rowguid column yourself as per Step 1, after the subscriber database is restored, on each table.
alter table <subscribertable> add [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL;
Helper script to write the TSQL which you can copy/paste into subscriber connection and run before initial sync
-- To find all tables and help the syntax, run this at the publisher:
select 'alter table [' + name +'] add [rowguid] uniqueidentifier rowguidcol default newsequentialid();' from sysmergearticles where type=10
-- Copy the results from the above query, and run that at the subscriber to make the rowguid columns ahead of time.
alter table <subscribertable1> add [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL;
alter table <subscribertable2> add [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL;
alter table <subscribertable3> add [rowguid] [uniqueidentifier] ROWGUIDCOL NOT NULL;