[SQL Server 2012 SP2 EE]
为什么以下脚本给我一个与 tempdb 相关的错误?
exec sp_MSForEachDB '
IF ( (select database_id from sys.databases where name = ''?'') > 4)
BEGIN
ALTER AUTHORIZATION ON DATABASE::? TO [sa];
ALTER DATABASE [?] SET RECOVERY SIMPLE;
END'
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Msg 5058, Level 16, State 1, Line 5
Option 'RECOVERY' cannot be set in database 'tempdb'.
Run Code Online (Sandbox Code Playgroud)
它完成了它应该做的工作。但我想不出错误的原因。我知道 tempdb 的 databaseID 是 2,那么至少它不应该尝试为 tempdb 设置选项。