Вы могли бы также думать о том, хороший повторно запускаемым скрипт, который позволяет поддерживать расширенные свойства. Системные хранимые процедуры для этого хорошо работают, но это боль, поэтому я обертываю их собственной хранимой процедурой, чтобы я мог более легко справиться с ними.
Например, приведенная ниже хранимая процедура предназначена для расширенных свойств уровня столбца, которая: а) проверяет, существует ли расширенное свойство, и б) если оно его удаляет, а в) затем добавляет его.
Это позволяет мне поддерживать чистый повторный запуск (который является критическим для автоматизированных процессов сборки) скриптом простых однострочных линий для добавления расширенных свойств (только для уровня столбца - вам нужно будет изменить это или написать аналогичный для других типов объектов).
Вот sproc:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo]. [snap_xpColumn_addUpdate]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].snap_xpColumn_addUpdate
GO
CREATE PROCEDURE [dbo].[snap_xpColumn_addUpdate]
@TableName NVARCHAR(255),
@ColumnName NVARCHAR(255),
@ExtPropName NVARCHAR(255),
@ExtPropValue NVARCHAR(255),
@SchemaOwner NVARCHAR(255) = 'dbo'
AS
IF EXISTS(SELECT * FROM ::fn_listextendedproperty(@ExtPropName,'SCHEMA',@SchemaOwner,
'TABLE',@TableName,'COLUMN',@ColumnName))
BEGIN
-- drop it
EXEC sys.sp_dropextendedproperty @[email protected],
@level0type=N'SCHEMA',
@[email protected],
@level1type=N'TABLE',
@[email protected],
@level2type=N'COLUMN',
@[email protected]
END
-- add it
EXEC sys.sp_addextendedproperty @[email protected],
@[email protected],
@level0type=N'SCHEMA',
@[email protected],
@level1type=N'TABLE',
@[email protected],
@level2type=N'COLUMN',
@[email protected]
GO
Ба. Это только обрабатывает EP для таблиц и представлений. – JJS 2015-09-22 21:13:39