Olá!, o
I começ o seguinte
Msg 3930 do erro, Sev 16, estado 1, linha 29: A transação atual não pode ser cometida e não pode suportar as operações que escrevem à lima de registro. Rolar para trás a transação. [SQLSTATE 42000]. PROCEDIMENTO do is
CREATE do código do
the [dbo]. [DBA_MaintenancePlan] o @dbList do varchar (1000) = o , @AllDBs mordeu = 0 , @UserDBs mordidos = 0 , @SystemDBs mordidos = 0 , @excludeList varchar (1000) = o , do @BackupDB bit=0, do @BackupLog bit=0, do @INIT bit=0, do @DIFF bit=0, do @CHECKDB bit=0, do @CHECKCATALOG bit=0, do @CHECKALLOC bit=0, do @CHECK_COMPREHENSIVE bit=0, @CHECK_DOW int = o , do @OPT_REFRESH bit=0, do @OPT_INDEXES bit=0, do @OPT_IndexFragThreshold float=5.0, @OPT_IndexFillFactor int = 100 o , bocado do @OPT_IndexOnlineOperationsOnly = 1 , bocado @OPT_IndexBulkLogged = 0 , @OPT_IndexAutoLogBackup mordido = 0 , @OPT_IndexAutoLogBackupIntervalSecs int = 300 o , @OPT_IndexMaxDurationMins int = 0 , @OPT_IndexTableRowLimit int = 0 , do @OPT_STATISTICS bit=0, , bocado do decimal do @OPT_StatsRowModPct (19.2) = do @OPT_StatsIncludeCIXStats = 0 , @OPT_StatsIncludeCLStats mordidos = 0 , @OPT_StatsSamplePct int = 50 o , @OPT_StatsDOW int = o , @OPT_StatsMaxDurationMins int = 0 , @OPT_StatsTableRowLimit int = 0 , @OPT_IndexTableRowMin int = 0 , @OPT_StatsTableRowMin int = 0 AS COMEÇA o NOCOUNT AJUSTADO SOBRE o do CRIA o do do #DB da TABELA (identidade da identificação int, DBID int NAO NULO, SYSNAME conhecido NAO NULO) SELECIONA DBID, no dos #allDBs do ONDE 1=1 o e tempdb” e @AllDBs do <> conhecido “= 1 do SELECIONA DBID, de master.dbo.sysdatabases no dos #systemDBs do ONDE 1=1 o e o nome (“mestre”, “modelo”, “msdb”, “distribuição ") no e nos @SystemDBs = 1 do SELECIONAM DBID, de master.dbo.sysdatabases no dos #userDBs do ONDE 1=1 o e nomeia NÃO (“mestre”, “modelo”, “msdb”, “tempdb”, “distribuição ") no e os @UserDBs = 1 INSERÇÃO do do do no do #DB (dbid, nome) selecionam DBId, do dos #allDBs ONDE nome não dentro (rtrim seleto (ltrim (o elemento)) do da UNIÃO do de dbo.fn_Split (@excludeList, “, ")) selecionar DBID, do dos #systemDBs ONDE nome não dentro (rtrim seleto (ltrim (o elemento)) do da UNIÃO do de dbo.fn_Split (@excludeList, “, ")) selecionar DBID, nomeiam o do dos #userDBs ONDE nome não dentro (rtrim seleto (ltrim (o elemento)) do da UNIÃO do de dbo.fn_Split (@excludeList, “, ")) SELECIONAR DBID, nomeiam o do de master.dbo.sysdatabases ONDE nome DENTRO (rtrim seleto (ltrim (o elemento)) do de dbo.fn_Split (@dbList, “, ")) e do nome não dentro (rtrim seleto (ltrim (elemento)) da ORDEM do de dbo.fn_Split (o @excludeList, o “, ")) pelo /> DECLARAM o @DBID int, @id int, @lastId int, sysname do @Database do , @rtn int do , @sqlstring nvarchar (250), carvão animal @setting do do (10), @Message nvarchar (1024), @start_dow int do do , bocado do @skip_check do , bocado dos @skip_stats do , do do @compName do (100) seleciona o @start_dow = o DatePart (dw, GetDate ()), @skip_check = 0, @skip_stats = 0 se (o @check_dow não é @start_dow nulo e do @check_dow do <>) COMEÇAR @skip_check ajustado do = verificações de consistência de salto da base de dados de 1 cópia do “. StartDOW: ” + moldar (@start_dow como varchar) + “, CheckDOW: ” + moldar (@check_dow como varchar) o do da extremidade do se (o @OPT_StatsDOW não é @start_dow nulo e do @OPT_StatsDOW do <>) COMEÇAR @skip_stats ajustados do = optimizações de salto da estatística de 1 cópia do “. StartDOW: ” + moldar (@start_dow como varchar) + “, StatsDOW: ” + moldar (@OPT_StatsDOW como varchar) o @id seleto do do do do da extremidade do = 1, @lastId = máximo (identificação) do QUANDO (@lastId do <= do @id) COMEÇAR o @DBID SELETO do do = o DBID, @Database do do #DB = o do do #DB ONDE @id ajustado do do da identificação = do @id = @id + 1 @compName do do = QUOTENAME ajustados (o @@SERVERNAME) + “.” + do do @database -- funcionar todas as verificações que o COMEÇAR o da TENTATIVA se ((@checkdb = 1 ou @checkalloc = 1 ou @checkcatalog = 1) e (@skip_check = 0)) COMEÇAR o @rtn do EXEC = o do @database=@database do DBA. .DBA_CheckDatabase, do @checkdb=@checkdb, do @checkalloc=@checkalloc, do @checkcatalog=@checkcatalog, do do @check_comprehensive=@check_comprehensive SE (<> 0 do @rtn) COMEÇAR o CONTINUAM o do da EXTREMIDADE do da EXTREMIDADE do se (@OPT_REFRESH = 1) COMEÇAR o @rtn do EXEC = o se (@OPT_INDEXES = 1) COMEÇAR o @rtn do EXEC = o do @database=@database do DBA. .DBA_PerformIndexOptimizations, do da EXTREMIDADE do do @database=@database do DBA. .DBA_RefreshOptimizationStatus do @fragThreshold=@OPT_IndexFragThreshold, do @fillFactor=@OPT_IndexFillFator, do @onlineOperationsOnly=@OPT_IndexOnlineOperationsOnly, do @bulkLogged=@OPT_IndexBulkLogged, do @autoLogBackup=@OPT_IndexAutoLogBackup, do @autoLogBackupIntervalSecs=@OPT_IndexAutoLogBackupIntervalSecs, @maxDurationMins = dos @OPT_IndexMaxDurationMins, do @tableRowLimit = do @OPT_IndexTableRowLimit, se (@OPT_STATISTICS = 1 e @skip_stats = 0) COMEÇAR o do @rtn do EXEC = do @database=@database de DBA_PerformStatisticOptimizations, do da EXTREMIDADE do do @tableRowMin = do @OPT_IndexTableRowMin do @rowModPct=@OPT_StatsRowModPct, do @includeCIXStats=@OPT_StatsIncludeCIXStats, do @includeCLStats=@OPT_StatsIncludeCLStats, do @samplePct=@OPT_StatsSamplePct, @maxDurationMins = dos @OPT_StatsMaxDurationMins, do @tableRowLimit = do @OPT_StatsTableRowLimit, se (@BackupDB = 1) COMEÇAR o @rtn do EXEC = o @database=@database do DBA. .DBA_BackupDatabase, @INIT=@INIT do da EXTREMIDADE do do @tableRowMin = do @OPT_StatsTableRowMin, O @DIFF=@DIFF, DO DO @DOW=@START_DOW SE (<> 0 DO @RTN) COMEÇAR O CONTINUA O DO DA EXTREMIDADE DO -- após um apoio cheio ou do diff, o apoio do registro de transação pode re-initialized para conservar o se (@INIT = 1) COMEÇAR o @rtn do exec do = o @database=@database do DBA. .DBA_BackupLog, @INIT=1, @NOWARN=1, do espaço do do @dow=@start_dow SE (<> 0 do @rtn) COMEÇAR o CONTINUAM o da EXTREMIDADE do da EXTREMIDADE do da EXTREMIDADE do MAIS se (@BackupLog = 1) COMEÇAR o @rtn do exec do = o @database=@database do DBA. .DBA_BackupLog, @INIT=@INIT, do do @dow=@start_dow SE (<> 0 do @rtn) COMEÇAR o CONTINUAM o da TENTATIVA do FIM do da EXTREMIDADE do da EXTREMIDADE do COMEÇAM @message ajustado do do PRENDEDOR = @compName do mestre. .usp_LogDBAError do exec do do error_message (), do @message SE (XACT_STATE ()) = -1 O COMEÇA O DA EXTREMIDADE DO DO ROLLBACK DO CONTINUA A EXTREMIDADE DO DO PRENDEDOR DA EXTREMIDADE DO -- quando
could que do END do RETORNO 0 do do você modifica por favor acima do código emiti-lo ao do me
thanks adiantado
class= do
|