To find out which commands use SCH-M, you can use the lock acquired extended event filtered by the object id of the article (table) in the publication database and the lock mode = SCH-M while executing the replication commands:
CREATE EVENT SESSION [replication_sch_m_locks] ON SERVER ADD EVENT sqlserver.lock_acquired( ACTION(sqlserver.client_app_name,sqlserver.sql_text,sqlserver.tsql_stack) WHERE ([mode]=(2) AND ([object_id]=(2106086889) OR [object_id]=(2138087003) OR [object_id]=(22603469)) AND [database_id]=(37))) ADD TARGET package0.event_file(SET filename=N'c:\temp\replication_sch_m_locks' ,max_file_size=(100),max_rollover_files=(10)) WITH (TRACK_CAUSALITY=ON) GO
Below are the commands that use SCH-M lock on articles (tables)
- Sp_addarticle @article='article'
- Sp_changearticle @article='article '
- Sp_dropsubscription @article='article'
- Sp_dropsubscription @article=’All’
- Initialize with a snapshot the articles being added
However, when you start the snapshot agent, it will require SCH-M locks on all the tables of the publication (object id = 2106086889, object id = 2138087003, and object id = 22603469), not just the one you just added (object id = 22603469)