有多种语句和系统过程无法在事务内执行,错误消息为“不允许...”(例如,create database)或“无法执行...”(例如,exec sp_addrole)。
是否存在一条或一组规则来指示事务中是否不允许给定的过程/语句?有其列表吗?
不是微软官方资源,但迄今为止我找到的最全面的列表......
ALTER DATABASEBACKUP LOGBACKUP DATABASERESTORE LOG RESTORE DATABASE RECONFIGURE UPDATE STATISTICS LOAD DATABASE LOAD TRANSACTION CREATE DATABASE DISK INIT DROP DATABASE MASTER数据库的系统存储过程最后一项是一个相当广泛的类别...但是您可以合理地预测哪些类型的系统存储过程将改变数据库MASTER...本质上是在服务器级别而不是数据库级别运行的任何内容。