Server Management Studio имеет тенденцию быть немного не интуитивно понятным, когда дело доходит до управления расширенными свойствами, поэтому любой может порекомендовать достойный инструмент, который улучшит ситуацию.
Одна вещь, которую я хотел бы сделать, - это иметь шаблоны, которые я мог бы применять к объектам, тем самым стандартизируя номенклатуру и содержание свойств, применяемых к объектам.





Взгляните на Data Dictionary Creator, инструмент с открытым исходным кодом, который я написал, чтобы упростить редактирование расширенных свойств. Он также включает возможность экспортировать информацию в различные форматы.
http://www.codeplex.com/datadictionary

Вы также можете подумать о том, чтобы иметь хороший перезапускаемый скрипт, который позволит вам поддерживать расширенные свойства. Системные хранимые процедуры для выполнения этой задачи работают хорошо, но они доставляют боль, поэтому я оборачиваю их своей собственной хранимой процедурой, чтобы мне было легче с ними работать.
Например, ниже представлена хранимая процедура, нацеленная на расширенные свойства уровня столбца, которая а) проверяет, существует ли уже расширенное свойство, и б) если да, то удаляет его, и в) затем добавляет.
Это позволяет мне поддерживать чистый перезапускаемый (что критично для процессов автоматизированной сборки) сценарий простых однострочных вкладышей для добавления расширенных свойств (только на уровне столбца - вам нужно будет изменить его или написать аналогичный для других типов объектов. ).
Вот пример:
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 @name=@ExtPropName,
@level0type=N'SCHEMA',
@level0name=@SchemaOwner,
@level1type=N'TABLE',
@level1name=@TableName,
@level2type=N'COLUMN',
@level2name=@ColumnName
END
-- add it
EXEC sys.sp_addextendedproperty @name=@ExtPropName,
@value=@ExtPropValue,
@level0type=N'SCHEMA',
@level0name=@SchemaOwner,
@level1type=N'TABLE',
@level1name=@TableName,
@level2type=N'COLUMN',
@level2name=@ColumnName
GO
Вы считаете, что nvarchar (255) всегда достаточен для значений?
Ба. Это обрабатывает только EP для таблиц и представлений.