Обновление метаданных таблицы на лету - PullRequest
0 голосов
/ 25 августа 2011

Мы помещаем уникальный идентификатор в расширенные свойства каждой таблицы, который затем читается некоторыми отчетами. Я хотел бы иметь возможность делать это на лету, поэтому нам не нужно вводить это вручную. Однако SQL Server 2008 не допускает специальных обновлений системных каталогов.

Как я могу обновить расширенные свойства с помощью специального запроса? Или есть другое место, где я могу хранить метаданные, где они легко читаются в отчетах?

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 25 августа 2011

Один вариант:

Расширенные свойства добавляются с помощью sp_addextendedproperty (есть также обновления и удаления процедур). Это требует расширенных прав.

Таким образом, вы можете заключить вызовы в этот другой процесс с помощью EXECUTE AS , чтобы расширить права только для сохраненного процесса.

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

EXEC sp_addextendedproperty ...
GO

Либо так, либо используйте свою собственную таблицу для поддержания этого.

...