バックアップ、整合性チェック、インデックスメンテナンスのためにOlaの並列実行を実装しました。すべてが順調に動作しているように見えますが、sql_message_id 50000
sysjobhistory
テーブルの新しい実行。 [SQLSTATE 01000]
ジョブ出力ファイルの各行。これは正常な動作ですか?オンラインで詳細なドキュメントを見つけることができないようです。
msdb.dbo.Sysjobhistoryのメッセージ50000が意図されています。
Ola Hallengrenのインデックス最適化手順の一部を取ります:_[dbo].[IndexOptimize]
_、整合性チェックの一部:_[dbo].[DatabaseIntegrityCheck]
_またはバックアップ手順の一部:_[dbo].[DatabaseBackup]
_、同じRAISERROR()
ステートメント表示される:
_ SET @StartMessage = 'Date and time: ' + CONVERT(nvarchar,@StartTime,120)
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Server: ' + CAST(SERVERPROPERTY('ServerName') AS nvarchar(max))
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Version: ' + CAST(SERVERPROPERTY('ProductVersion') AS nvarchar(max))
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Edition: ' + CAST(SERVERPROPERTY('Edition') AS nvarchar(max))
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Platform: ' + @HostPlatform
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Procedure: ' + QUOTENAME(DB_NAME(DB_ID())) + '.' + QUOTENAME(@SchemaName) + '.' + QUOTENAME(@ObjectName)
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Parameters: ' + @Parameters
SET @StartMessage = REPLACE(@StartMessage,'%','%%')
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Version: ' + @VersionTimestamp
RAISERROR(@StartMessage,10,1) WITH NOWAIT
SET @StartMessage = 'Source: https://ola.hallengren.com' + CHAR(13) + CHAR(10) + ' '
RAISERROR(@StartMessage,10,1) WITH NOWAIT
_
RAISERRROR()
は、プロシージャの実行時に実行されます。
履歴を見ると、「エラー」が表示されています。
_select message From msdb..sysjobhistory
where sql_message_id =50000
_
結果
_Executed as user: DOMAIN\test. ...0000) Server: test [SQLSTATE 01000] (Message 50000) Version: 12.0.5546.0 [SQLSTATE 01000] (Message 50000) ...
_
前のT-SQLの例で定義されたものと同じサーバーおよびバージョン情報を使用します。
なぜ「エラー」は50000から始まるのですか?
これは50000から始まります。これは、50000以上から始まり、ユーザーが生成したエラーを定義できるためです。
なぜ手続きにraiserror()があるのですか?
私の意見では、RAISERRROR()
は、実行中の内容を知るために履歴DMVに追加情報を追加するために追加され、混乱することなく追加情報を持っていると考えています。表示される内容を制御できます。
私はオラ自身にもっと深い推論を任せます。
その後、履歴は、SSMSジョブアクティビティモニターに追加されます。このモニターは、私たち(ほとんどの人)が知っており、使用しています:
だから質問に答えるために、それはその背後にある推論でprocにコード化されています。
RAISERROR()50000のデフォルトの例
50000から始まるエラー番号を使用する場合、raiserrrorでのみカスタムエラーを生成できます。
特定のエラー番号なしのジョブでのテスト:
結果:
50000から開始します。