Go-live doesn't particularly worry me, it is roll back that causes me to tuck my trousers in my socks so no-one can see I'm scared.
When we submit change orders to production control for deployment, we're required to provide a rollback script or at least a text file containing a set of instructions. For the web application, services, and BI developers, that's relatively straightforward, simply copy in the previous version of the modules, even if it involves temporarily taking the application offline.
If I'm deploying something like an insert/update/delete script, I will perform a [ROLLBACK] within the batch in the event of an error of if @@ROWCOUNT returns an unexpected value. However, in the realm of the database, there is no easy and reliable way to rollback a batch of updates or schema changes... not hours or days after the batch has already been committed in a TB sized production database with several hundred users.
In many cases the rollback instructions would go something like this:
#1 Restore database to most recent backup prior to deployment date. (LOL!)
#2 Contact me, we'll discuss what specifically needs to be restored, and then I'll write the script.
"The universe is complicated and for the most part beyond your control, but your life is only as complicated as you choose it to be."