Questione : Errore dei MSG 3930 in sqlserver2008

Ciao, il

I ha ottenuto il seguente

Msg 3930, Sev 16, la condizione 1, la linea 29 di errore: La transazione corrente non può essere commessa e non può sostenere i funzionamenti che scrivono alla lima di ceppo. Rotolare indietro la transazione. [SQLSTATE 42000]. PROCEDURA del is


CREATE di codice del

the [dbo]. [DBA_MaintenancePlan] il @dbList del
varchar (1000) =
, @AllDBs ha morso = 0
, @UserDBs pungenti = 0
, @SystemDBs pungenti = 0
, @excludeList varchar (1000) =
, il
, il
, il
, il
, il
, il
, il
, il
, @CHECK_DOW del @BackupDB bit=0 del @BackupLog bit=0 del @INIT bit=0 del @DIFF bit=0 del @CHECKDB bit=0 del @CHECKCATALOG bit=0 del @CHECKALLOC bit=0 del @CHECK_COMPREHENSIVE bit=0 int =
, il
, il
, il
, @OPT_IndexFillFactor del @OPT_REFRESH bit=0 del @OPT_INDEXES bit=0 del @OPT_IndexFragThreshold float=5.0 int = 100
, punta del @OPT_IndexOnlineOperationsOnly = 1
, punta @OPT_IndexBulkLogged = 0
, @OPT_IndexAutoLogBackup pungente = 0
, il @OPT_IndexAutoLogBackupIntervalSecs int = 300
, il @OPT_IndexMaxDurationMins int = 0
, @OPT_IndexTableRowLimit int = 0
, il
, il
, punta di decimale del @OPT_StatsRowModPct (19.2) = del @OPT_STATISTICS bit=0 del @OPT_StatsIncludeCIXStats = 0
, @OPT_StatsIncludeCLStats pungenti = 0
, @OPT_StatsSamplePct int = 50
, @OPT_StatsDOW int =
, il @OPT_StatsMaxDurationMins int = 0
, @OPT_StatsTableRowLimit int = 0
, @OPT_IndexTableRowMin int = 0
, @OPT_StatsTableRowMin int = 0
AS COMINCIA il
NOCOUNT STABILITO SOPRA  il
del
GENERA il
del
del #DB della TABELLA (identità di identificazione int, DBID int NON NULLO, SYSNAME nome NON NULLO) SELEZIONA DBID, il
nel
dei #allDBs dal
IN CUI 1=1 il
e tempdb„ il
e @AllDBs del <> nome “= 1
del
SELEZIONA DBID, il
di master.dbo.sysdatabases nel
dei #systemDBs dal
IN CUI 1=1 il
ed il nome (“padrone„, “modello„, “msdb„, “distribuzione ") nel
e nei @SystemDBs = 1
del
SELEZIONANO DBID, il
di master.dbo.sysdatabases nel
dei #userDBs dal
DOVE 1=1 il
e chiama NON (“padrone„, “modello„, “msdb„, “tempdb„, “distribuzione ") nel
e i @UserDBs = 1 INSERTO del
del
del
nel
del #DB (dbid, nome) selezionano DBId, il
dal
dei #allDBs DOVE nome non dentro (rtrim prescelto (ltrim (elemento)) a partire dal
del SINDACATO del
di dbo.fn_Split (@excludeList, “, ")) selezionare DBID, il
dal
dei #systemDBs DOVE nome non dentro (rtrim prescelto (ltrim (elemento)) a partire dal
del SINDACATO del
di dbo.fn_Split (@excludeList, “, ")) selezionare DBID, chiamano il
dal
dei #userDBs DOVE nome non dentro (rtrim prescelto (ltrim (elemento)) a partire dal
del SINDACATO del
di dbo.fn_Split (@excludeList, “, ")) SELEZIONARE DBID, chiamano il
dal
di master.dbo.sysdatabases DOVE nome DENTRO (rtrim prescelto (ltrim (elemento)) dal
di dbo.fn_Split (@dbList, “, ")) e dal nome non dentro (rtrim prescelto (ltrim (elemento)) dal
del
di ORDINE del
di dbo.fn_Split (@excludeList, “, ")) per nome DICHIARARE il @DBID il int, @id int, @lastId int, sysname di @Database del
, @rtn int, @sqlstring nvarchar (250), carbone @setting del
del
del
(10), il @Message nvarchar (1024), il @start_dow il int, la punta del @skip_check del
, la punta dei @skip_stats del
,
del
del
del
del @compName del
(i 100) seleziona il @start_dow = DatePart (dw, GetDate ()), @skip_check = 0, @skip_stats = 0
se (@check_dow non è @start_dow del @check_dow e nullo del <>) COMINCIARE il @skip_check stabilito del
= controlli di consistenza di salto della base di dati della 1 stampa del
“.  StartDOW: „ + lanciare (@start_dow come varchar) + “, CheckDOW: „ + lanciare (@check_dow come varchar) il
del
dell'estremità del
se (@OPT_StatsDOW non è @start_dow del @OPT_StatsDOW e nullo del <>) COMINCIARE i @skip_stats stabiliti del
= le ottimizzazioni di salto di statistica della 1 stampa del
“.  StartDOW: „ + lanciare (@start_dow come varchar) + “, StatsDOW: „ + lanciare (@OPT_StatsDOW come varchar) il @id prescelto del
del
del
del
dell'estremità del
= 1, @lastId = massimo (identificazione) dal
MENTRE (@lastId del <= del @id) COMINCIARE il @DBID PRESCELTO del
del
= DBID, @Database del
del #DB =
dal
del #DB DOVE @id stabilito del
del
del @id = di identificazione = @id + 1 @compName del
del
= QUOTENAME stabiliti (@@SERVERNAME) + “.„ +
del
di @database      -- fare funzionare tutti i controlli che
COMINCIA il
di PROVA se ((@checkdb = 1 o @checkalloc = 1 o @checkcatalog = 1) e (@skip_check = 0)) COMINCIARE il @rtn del
EXEC = il
, il
, il
, il
, il
di @database=@database di DBA. .DBA_CheckDatabase del @checkdb=@checkdb del @checkalloc=@checkalloc del @checkcatalog=@checkcatalog del
del @check_comprehensive=@check_comprehensive SE (<> 0 del @rtn) COMINCIARE il
CONTINUANO il
del
dell'ESTREMITÀ del
dell'ESTREMITÀ del
se (@OPT_REFRESH = 1) COMINCIA il @rtn del
EXEC = il
del
dell'ESTREMITÀ del
di @database=@database di DBA. .DBA_RefreshOptimizationStatus se (@OPT_INDEXES = 1) COMINCIA il @rtn del
EXEC = il
, il
, il
, il
, il
, il @autoLogBackup=@OPT_IndexAutoLogBackizations del @fragThreshold=@OPT_IndexFragThreshold del @fillFactor=@OPT_IndexFillFactor del @onlineOperationsOnly=@OPT_IndexOnlineOperationsOnly del @bulkLogged=@OPT_IndexBulkLogged
,
, @maxDurationMins =
,
,
se (@OPT_STATISTICS = 1 e @skip_stats = 0) COMINCIARE il
del @rtn del
EXEC = di @database=@database di DBA_PerformStatisticOptimizations,
,
,
,
, @maxDurationMins =
,
,
di/>up del @autoLogBackupIntervalSecs=@OPT_IndexAutoLogBackupIntervalSecs dei @OPT_IndexMaxDurationMins del @OPT_IndexTableRowLimit = del @tableRowLimit del
dell'ESTREMITÀ del
del @OPT_IndexTableRowMin = del @tableRowMin del @rowModPct=@OPT_StatsRowModPct del @includeCIXStats=@OPT_StatsIncludeCIXStats del @includeCLStats=@OPT_StatsIncludeCLStats del @samplePct=@OPT_StatsSamplePct dei @OPT_StatsMaxDurationMins del @OPT_StatsTableRowLimit = del @tableRowLimit del
dell'ESTREMITÀ del
del @OPT_StatsTableRowMin = del @tableRowMin se (@BackupDB = 1) COMINCIA il @rtn del
EXEC = il @database=@database di DBA. .DBA_BackupDatabase, il @INIT=@INIT, il @DIFF=@DIFF, IL
DEL
DEL @DOW=@START_DOW SE (<> 0 DEL @RTN) COMINCIARE IL
CONTINUA IL
DEL
DELL'ESTREMITÀ DEL
            -- dopo un sostegno del diff o completo, il sostegno del ceppo di transazione può re-initialized per conservare il
dello spazio se (@INIT = 1) COMINCIA il @rtn del exec del
= il @database=@database di DBA. .DBA_BackupLog, @INIT=1, @NOWARN=1, il
del
del @dow=@start_dow SE (<> 0 del @rtn) COMINCIARE il
CONTINUANO il
dell'ESTREMITÀ del
dell'ESTREMITÀ del
dell'ESTREMITÀ del
ALTRIMENTI se (@BackupLog = 1) COMINCIA il @rtn del exec del
= il @database=@database di DBA. .DBA_BackupLog, il @INIT=@INIT, il
del
del @dow=@start_dow SE (<> 0 del @rtn) COMINCIARE il
CONTINUANO il
di PROVA di CONCLUSIONE del
dell'ESTREMITÀ del
dell'ESTREMITÀ del
COMINCIANO il @message = il error_message stabiliti del
del FERMO () @compName del padrone. .usp_LogDBAError del exec del
,
di @message SE (XACT_STATE ()) = -1 IL
COMINCIA IL
DELL'ESTREMITÀ DEL
DI RIDUZIONE DEI PREZZI DEL
CONTINUA L'ESTREMITÀ DEL
DEL FERMO DELL'ESTREMITÀ DEL
-- mentre

could che del
END di RITORNO 0 del
del
modificate prego sopra il codice trasmetterlo in anticipo al
del me

thanks class= del

Risposta : Errore dei MSG 3930 in sqlserver2008

Allora prova:

         SE (XACT_STATE ()) = -1  
         COMINCIARE  
           RIDUZIONE DEI PREZZI  
         ESTREMITÀ  
          COMMETTERE
CONTINUARE
      CONCLUDERE IL FERMO  
   ESTREMITÀ -- mentre  
     RITORNO 0  
ESTREMITÀ  
Altre soluzioni  
 
programming4us programming4us