Log shipping is only sql option, secondary db is in read only mode. However
updating secondary by restoring a log will disconnect all users. If you are
only looking to restore every 2 hours or so or nightly this may work, if
users do not like the latency, well, take the time to add pks.
you might want to consider adding identity column to end of table, it is
self populating and most likely will not break your app.
Trans repl is the way to go!
chris
sqldatabasesolutions.com