I'm attempting to setup transactional replication in a production environment. When adding columns to an article (calling sp_articlecolumn stored procedure), it appears to want to lock the published table/article. Since we're not replicating every column, and there are quite a few columns to be added, it's locking the production table for longer than we can endure. The sp_addarticle stored procedure seems to add the article just fine, but the sp_articlecolumn is causing problems.
I've gone as far as looking through the "hidden" stored procedures that are called from sp_articlecolumn, but I don't see anything that I'd expect to require a lock at all. I figured if I can find the section that requires a lock, I should be able to bypass it and generate the replication metadata myself in a way that wouldn't lock the production tables.
Bottom line is that I feel like setting up replication should not require a maintenance window. I haven't been able to find information that would definitively prove me wrong.