2008-08-20 15 views
2

Server Management Studio a tendance à être un peu peu intuitif lorsqu'il s'agit de gérer les propriétés étendues, donc quelqu'un peut vous recommander un outil décent qui améliore la situation. Une chose que je voudrais faire est d'avoir des modèles que je peux appliquer des objets, normalisant ainsi la nomenclature et le contenu des propriétés appliquées aux objets.Recommander un outil pour gérer les propriétés étendues dans SQL Server 2005

Répondre

5

Jetez un oeil à Data Dictionary Creator, un outil open source que j'ai écrit pour le rendre plus facile à éditer les propriétés étendues. Cela inclut également la possibilité d'exporter l'information dans divers formats.

http://www.codeplex.com/datadictionary

enter image description here

+0

Bah. Cela ne gère que les PE pour les tables et les vues. – JJS

1

Vous pourriez aussi penser à avoir un bon script re-runnable qui vous permet de maintenir les propriétés étendues. Le système a stocké des procédures pour bien faire ce travail, mais ils sont pénibles, alors je les enveloppe avec ma propre procédure stockée afin que je puisse plus facilement les gérer. Par exemple, ci-dessous est une procédure stockée ciblée sur les propriétés étendues de niveau colonne qui a) vérifie si la propriété étendue existe déjà, et b) si c'est le cas, et c) l'ajoute ensuite. Cela me permet de maintenir un script propre et redéclenchable (ce qui est essentiel pour les processus de construction automatisés) de simples lignes pour ajouter les propriétés étendues (niveau de colonne seulement - vous devez modifier celui-ci ou en écrire un similaire pour les autres types d'objets).

Voici le 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 
+0

trouvez-vous nvarchar (255) pour toujours être suffisant pour les valeurs? – JJS