Pergunta : Erro dos MSG 3930 em sqlserver2008

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

Resposta : Erro dos MSG 3930 em sqlserver2008

Então tentativa:

         SE (XACT_STATE ()) = -1  
         COMEÇAR  
           ROLLBACK  
         EXTREMIDADE  
          COMETER
CONTINUAR
      TERMINAR O PRENDEDOR  
   EXTREMIDADE -- quando  
     RETORNO 0  
EXTREMIDADE  
Outras soluções  
 
programming4us programming4us