Bonjour, le
I a obtenu le
Msg 3930, Sev 16, l'état 1, la ligne 29 d'erreur : La transaction courante ne peut pas être commise et ne peut pas soutenir les opérations qui écrivent au fichier de consignation. Rouler en arrière la transaction. [SQLSTATE 42000]. PROCÉDÉ de l'is
CREATE de code du
the [dbo]. [DBA_MaintenancePlan] le @dbList du varchar (1000) = le , @AllDBs a mordu = 0 , @UserDBs mordus = 0 , @SystemDBs mordus = 0 , @excludeList varchar (1000) = le , le , le , le , le , le , le , le , le , @CHECK_DOW du @BackupDB bit=0 du @BackupLog bit=0 du @INIT bit=0 du @DIFF bit=0 du @CHECKDB bit=0 du @CHECKCATALOG bit=0 du @CHECKALLOC bit=0 du @CHECK_COMPREHENSIVE bit=0 international = le , le , le , le , @OPT_IndexFillFactor du @OPT_REFRESH bit=0 du @OPT_INDEXES bit=0 du @OPT_IndexFragThreshold float=5.0 international = 100 le , peu du @OPT_IndexOnlineOperationsOnly = 1 , peu @OPT_IndexBulkLogged = 0 , @OPT_IndexAutoLogBackup mordu = 0 , le @OPT_IndexAutoLogBackupIntervalSecs international = 300 le , le @OPT_IndexMaxDurationMins international = 0 , @OPT_IndexTableRowLimit international = 0 , le , le , peu de la décimale de @OPT_StatsRowModPct (19.2) = du @OPT_STATISTICS bit=0 du @OPT_StatsIncludeCIXStats = 0 , @OPT_StatsIncludeCLStats mordus = 0 , @OPT_StatsSamplePct international = 50 le , @OPT_StatsDOW international = le , le @OPT_StatsMaxDurationMins international = 0 , @OPT_StatsTableRowLimit international = 0 , @OPT_IndexTableRowMin international = 0 , @OPT_StatsTableRowMin international = 0 AS COMMENCENT le NOCOUNT RÉGLÉ DESSUS le du CRÉENT le du de #DB de TABLE (identité d'identification international, DBID international NON NUL, SYSNAME nommé NON NUL) CHOISISSENT DBID, le dans le de #allDBs du OÙ 1=1 le et tempdb » le et les @AllDBs de <> nommé « = 1 du CHOISISSENT DBID, le de master.dbo.sysdatabases dans le de #systemDBs du OÙ 1=1 le et le nom DANS (« maître », « modèle », « msdb », « distribution ") le et les @SystemDBs = 1 du CHOISISSENT DBID, le de master.dbo.sysdatabases dans le de #userDBs du OÙ 1=1 le et appellent PAS DANS (« maître », « modèle », « msdb », « tempdb », « distribution ") le et les @UserDBs = 1 INSERTION du du du DANS le de #DB (dbid, nom) choisissent DBId, le du de #allDBs OÙ nom pas dedans (rtrim choisi (ltrim (l'élément)) à partir du des SYNDICATS du de dbo.fn_Split (@excludeList, « , ")) choisir DBID, le du de #systemDBs OÙ nom pas dedans (rtrim choisi (ltrim (l'élément)) à partir du des SYNDICATS du de dbo.fn_Split (@excludeList, « , ")) choisir DBID, appellent le du de #userDBs OÙ nom pas dedans (rtrim choisi (ltrim (l'élément)) à partir du des SYNDICATS du de dbo.fn_Split (@excludeList, « , ")) CHOISIR DBID, appellent le du de master.dbo.sysdatabases OÙ nom DEDANS (rtrim choisi (ltrim (l'élément)) de dbo.fn_Split (@dbList, du « , ")) et du nom pas dedans (rtrim choisi (ltrim (élément)) du du d'ORDRE du de dbo.fn_Split (@excludeList, le « , ")) de nom DÉCLARER le @DBID international, le @id international, le @lastId international, sysname de @Database du , le @rtn international, @sqlstring du nvarchar (250), char @setting du du (10), @Message du nvarchar (1024), le @start_dow international, peu de @skip_check du , peu de @skip_stats du , du du de @compName du (les 100) choisissent le @start_dow = le DatePart (dw, GetDate ()), @skip_check = 0, @skip_stats = 0 si (le @check_dow n'est pas @start_dow nul et de @check_dow de <>) COMMENCER le @skip_check réglé du de = les contrôles de cohérence sautants de base de données 1 impression du « . StartDOW : » + mouler (@start_dow comme varchar) + « , CheckDOW : » + mouler (@check_dow en tant que varchar) le du d'extrémité du si (le @OPT_StatsDOW n'est pas @start_dow nul et de @OPT_StatsDOW de <>) COMMENCER les @skip_stats réglés du de = des optimisations sautantes de statistique 1 impression du « . StartDOW : » + mouler (@start_dow comme varchar) + « , StatsDOW : » + mouler (@OPT_StatsDOW en tant que varchar) le @id choisi du du du du d'extrémité du = 1, @lastId = maximum (identification) du TANDIS QUE (@lastId de <= de @id) COMMENCER le @DBID CHOISI du du = le DBID, @Database du de #DB = le du de #DB OÙ @id réglé du du d'identification = de @id = @id + 1 @compName du du = QUOTENAME réglés (le @@SERVERNAME) + « . » + du de @database -- courir tous les contrôles que le COMMENCENT le d'ESSAI si ((@checkdb = 1 ou @checkalloc = 1 ou @checkcatalog = 1) et (@skip_check = 0)) COMMENCER le @rtn = le , le , le , le , le du EXEC de @database=@database du DBA. .DBA_CheckDatabase de @checkdb=@checkdb de @checkalloc=@checkalloc du @checkcatalog=@checkcatalog du du @check_comprehensive=@check_comprehensive SI (<> 0 de @rtn) COMMENCER le CONTINUENT le du d'EXTRÉMITÉ du d'EXTRÉMITÉ du si (le @OPT_REFRESH = 1) COMMENCENT le @rtn = le du EXEC du d'EXTRÉMITÉ du de @database=@database du DBA. .DBA_RefreshOptimizationStatus si (le @OPT_INDEXES = 1) COMMENCENT le @rtn = le , le , le , le , le , le @autoLogBackup=@OPT_IndexAutoLogBack EXEC de @database=@database du DBA. .DBA_PerformIndexOptimizations du @fragThreshold=@OPT_IndexFragThreshold du @fillFactor=@OPT_IndexFillFactor du @onlineOperationsOnly=@OPT_IndexOnlineOperationsOnly du @bulkLogged=@OPT_IndexBulkLogged , , @maxDurationMins = , , si (@OPT_STATISTICS = 1 et @skip_stats = 0) COMMENCER le de @rtn du EXEC = de @database=@database de DBA_PerformStatisticOptimizations, , , , , @maxDurationMins = , , de/>up du @autoLogBackupIntervalSecs=@OPT_IndexAutoLogBackupIntervalSecs de @OPT_IndexMaxDurationMins de @tableRowLimit = de @OPT_IndexTableRowLimit du d'EXTRÉMITÉ du de @tableRowMin = de @OPT_IndexTableRowMin du @rowModPct=@OPT_StatsRowModPct du @includeCIXStats=@OPT_StatsIncludeCIXStats du @includeCLStats=@OPT_StatsIncludeCLStats du @samplePct=@OPT_StatsSamplePct de @OPT_StatsMaxDurationMins de @tableRowLimit = de @OPT_StatsTableRowLimit du d'EXTRÉMITÉ du de @tableRowMin = de @OPT_StatsTableRowMin si (le @BackupDB = 1) COMMENCENT le @rtn du EXEC = le @database=@database du DBA. .DBA_BackupDatabase, @INIT=@INIT, le @DIFF=@DIFF, LE DU DE @DOW=@START_DOW SI (<> 0 DE @RTN) COMMENCER LE CONTINUENT LE DU D'EXTRÉMITÉ DU -- après support un plein ou de diff, le support de notation de transaction peut être réinitialisé pour sauver le de l'espace si (le @INIT = 1) COMMENCENT le @rtn d'exec du = le @database=@database du DBA. .DBA_BackupLog, @INIT=1, @NOWARN=1, le du de @dow=@start_dow SI (<> 0 de @rtn) COMMENCER le CONTINUENT le d'EXTRÉMITÉ du d'EXTRÉMITÉ du d'EXTRÉMITÉ du AUTREMENT si (le @BackupLog = 1) COMMENCENT le @rtn d'exec du = le @database=@database du DBA. .DBA_BackupLog, @INIT=@INIT, le du de @dow=@start_dow SI (<> 0 de @rtn) COMMENCER le CONTINUENT le d'ESSAI de FIN du d'EXTRÉMITÉ du d'EXTRÉMITÉ du COMMENCENT le @message = l'error_message réglés du de CROCHET () @compName du maître. .usp_LogDBAError d'exec du , de @message SI (XACT_STATE ()) = -1 LE COMMENCENT LE D'EXTRÉMITÉ DU DE BAISSE DE PRIX DU CONTINUENT L'EXTRÉMITÉ DU DE CROCHET D'EXTRÉMITÉ DU -- tandis que
could du END du RETOUR 0 du du que vous modifiez svp au-dessus du code l'envoyer au du me
thanks à l'avance
class= de
|