2011-08-25 4 views
0

各テーブルの拡張プロパティに一意の識別子を入れ、それをいくつかのレポートで読み込みます。私はその場でこれを行うことができるようにしたいので、手で入力する必要はありません。ただし、SQL Server 2008はシステムカタログへの特別な更新を許可していません。オンザフライでテーブルのメタデータを更新する

アドホッククエリで拡張プロパティを更新するにはどうすればよいですか?または、レポートで簡単に読むことができる場所にメタデータを格納できる別の場所がありますか?

ご協力いただきまして誠にありがとうございます。

+1

このようなメタデータを格納することで何を達成しようとしていますか?おそらくもっと良い方法があります。 – JNK

+0

基本的には、テーブルに含まれるものがわかるように、一意のテーブル識別子をメタデータに格納しています(たとえば、2011年2月のデータ)。 – divided

+0

yikes、すぐに追加/減算/更新するテーブルはありますか? – JNK

答えて

2

一つのオプション:

拡張プロパティは(更新、ドロップprocsのがあまりにもあります)sp_addextendedpropertyを使用して追加されます。彼らはしかし、強化された権利が必要です。

EXECUTE ASという別のプロキシでこの呼び出しをラップすると、ストアドプロシージャの権限のみをエスカレートすることができます。

CREATE PROC dbo.OurMetaDataUpdate 
    @tablename ... 
    @uniqueid ... 
WITH EXECUTE AS OWNER 
AS 
SET NOCOUNT ON 

EXEC sp_addextendedproperty ... 
GO 

いずれか、またはこれを維持するために独自のテーブルを使用してください。

+0

これをprocでラップする代わりに、sp_addextendedproperty(@ name、@ value)を呼び出すことができますか? – divided

+0

@divided:これは、オブジェクトをドロップして作成するのに十分な権利が必要です。これは多くのショップでNO-NOであるか、SOX/PCIなどの対象になっている場合です – gbn

関連する問題