I’m trying to avoid such database coupling cos it would make it more difficult to change the transport if and when needed.
In that case just creating a thread in your endpoint that just polls the database would be the simplest way to do this.
Should you need to do the polling on some more complex schedule you could look at using a scheduler
Or should I generate commands which does the polling at an interval?
I would recommend against using messages for this since if there is lots of events to publish, eg. after the poller being down for some time, publishing might take a long time and cause you to run into the transaction timeout of the transport that you are using. A custom thread like mentioned above would not have this issue.
For completeness, but most likely overkill in your case, you could use SqlTransport as originally
proposed and combine it with the https://docs.particular.net/nservicebus/router/ to decouble the rest of your system from the SqlTransport.
Hope this helps!