當管理擴展屬性時,Server Management Studio往往有點不直觀,所以任何人都可以推薦一個體面的工具來改善情況。推薦一個工具來管理SQL Server中的擴展屬性2005
我想要做的一件事就是讓我可以應用對象的模板,從而標準化應用於對象的屬性的命名和內容。
當管理擴展屬性時,Server Management Studio往往有點不直觀,所以任何人都可以推薦一個體面的工具來改善情況。推薦一個工具來管理SQL Server中的擴展屬性2005
我想要做的一件事就是讓我可以應用對象的模板,從而標準化應用於對象的屬性的命名和內容。
查看Data Dictionary Creator,我編寫的一個開放源碼工具,可以更容易地編輯擴展屬性。它還包括以各種格式導出信息的能力。
你也可以考慮有一個很好的重新運行的腳本,可以讓你維護的擴展屬性。系統爲此存儲過程運行良好,但它們很痛苦,所以我用自己的存儲過程來包裝它們,以便更輕鬆地處理它們。
例如,下面是一個針對列級擴展屬性的存儲過程,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
你發現nvarchar(255)總是足夠值嗎? – JJS 2015-09-22 21:15:03
呸。這隻能處理表格和視圖的EP。 – JJS 2015-09-22 21:13:39