2008-08-20 75 views
2

當管理擴展屬性時,Server Management Studio往往有點不直觀,所以任何人都可以推薦一個體面的工具來改善情況。推薦一個工具來管理SQL Server中的擴展屬性2005

我想要做的一件事就是讓我可以應用對象的模板,從而標準化應用於對象的屬性的命名和內容。

回答

5

查看Data Dictionary Creator,我編寫的一個開放源碼工具,可以更容易地編輯擴展屬性。它還包括以各種格式導出信息的能力。

http://www.codeplex.com/datadictionary

enter image description here

+0

呸。這隻能處理表格和視圖的EP。 – JJS 2015-09-22 21:13:39

1

你也可以考慮有一個很好的重新運行的腳本,可以讓你維護的擴展屬性。系統爲此存儲過程運行良好,但它們很痛苦,所以我用自己的存儲過程來包裝它們,以便更輕鬆地處理它們。

例如,下面是一個針對列級擴展屬性的存儲過程,a)檢查擴展屬性是否已經存在,以及b)是否將其刪除,c)然後添加它。

這讓我保持一個乾淨的可重新運行的腳本(這對於自動構建過程來說非常重要),可以添加擴展屬性(僅列級別 - 您需要修改這個腳本或編寫類似的腳本對於其他對象類型)。

這裏是存儲過程:

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

你發現nvarchar(255)總是足夠值嗎? – JJS 2015-09-22 21:15:03