Сведения о вопросе

Henry

06:38, 9th August, 2020

Теги

Рекомендуем инструмент для управления расширенными свойствами в SQL server 2005

Просмотров: 357   Ответов: 2

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

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



  Сведения об ответе

PHPH

23:29, 5th August, 2020

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

http://www.codeplex.com/datadictionary

enter image description here


  Сведения об ответе

PROGA

23:52, 15th August, 2020

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

Например, ниже приведена хранимая процедура, предназначенная для расширенных свойств уровня столбца, которая А) проверяет, существует ли расширенное свойство уже, и Б) если да, то отбрасывает его и c) затем добавляет его.

Это позволяет мне поддерживать чистый перезапускаемый (что критически важно для автоматизированных процессов сборки) сценарий простых лайнеров для добавления расширенных свойств (только на уровне столбцов - вам нужно будет изменить этот или написать аналогичный для других типов объектов).

Вот это 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 @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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться