SQL Server 2008r2dmvsおよびdmfsを使用して監視ツールを作成しました。クライアントサイトに展開するための9つの手順でtsqlを介してSQLサーバージョブを作成しました。
私の質問は、ジョブに保存されているバージョンを何らかの方法で含める方法を見つけて、次の展開のためにジョブをいつアップグレードするかを知ることです。それを行う方法はありますか?
前もって感謝します!
SQL Server 2008r2dmvsおよびdmfsを使用して監視ツールを作成しました。クライアントサイトに展開するための9つの手順でtsqlを介してSQLサーバージョブを作成しました。
私の質問は、ジョブに保存されているバージョンを何らかの方法で含める方法を見つけて、次の展開のためにジョブをいつアップグレードするかを知ることです。それを行う方法はありますか?
前もって感謝します!
次のように、データベースオブジェクトにカスタムプロパティを追加できます。
EXEC sp_addextendedproperty
N'YourProperyName', N'SomeValue',
N'SCHEMA', N'dbo',
N'TABLE', N'MyTable'
しかし、それが仕事に役立つかどうかはわかりません。または、ジョブの説明フィールドを使用することもできます。
select top 10 * from msdb.dbo.sysjobs
sp_addextendedpropertyを使用して、msdb.dbo.sysjobsテーブルまたは列(例:version_number)をバージョン管理できます。ただし、特定のレコードに対してこれを行うことはできません。拡張プロパティの値のTYPEはSQLVARIANTであるため、すべてのジョブのバージョンを表すXMLをmsdb.dbo.sysjobsテーブルに格納できます。
または、データベースにテーブルを作成し、job_id(GUID)と現在のバージョン番号を保存することもできます。これはカスタムソリューションです。
価値があるのは、sp_addextendedpropertyを使用して、sysjobsテーブルの拡張プロパティを追加、表示、更新、および削除する方法です。私はCOLUMNまで行きましたが、テーブルで停止することができます。
--Add the 'Version' extended property to msdb.dbo.sysjobs.[version_number] column.
EXECUTE sp_addextendedproperty N'Version', '1.0.0.0', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
--Update the 'Version' extended property
EXECUTE sp_updateextendedproperty N'Version', '1.0.0.2', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
--View the current value of 'Version'
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(N'Version', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number');
--Drop the 'Version' extended property
EXECUTE sp_dropextendedproperty N'Version', 'SCHEMA', N'dbo', 'TABLE', N'sysjobs', 'COLUMN', N'version_number';
sp_addextendedpropertyを使用してジョブでバージョン番号を保持することはできません
[@ level1type =] {'level1_object_type'}
レベル1オブジェクトのタイプです。level1_object_typeはvarchar(128)で、デフォルトはNULLです。有効な入力は、AGGREGATE、DEFAULT、FUNCTION、LOGICAL FILE NAME、PROCEDURE、QUEUE、RULE、SYNONYM、TABLE、TABLE_TYPE、TYPE、VIEW、XML SCHEMA COLLECTION、およびNULLです。ソース
そのためには、「level1_object_type」の値を「JOB」に変更する必要がありますが、これはオプションではありません。