Tuesday, October 9, 2012

[MSSQL] Adding a table/column description

今天同事接到一個需求,客戶強烈要求在DB裡的所有欄位都有說明,雖然我們有提供Schema說明文件,不過既然是客戶要求,那就只好照做了。

找了一下,發現有個系統提供的sp可以做到這點 sp_addextendedproperty (Transact-SQL) 說明看起來有點複雜,但是看懂後就還好,原本的語法是這樣的
sp_addextendedproperty
    [ @name = ] { 'property_name' }
    [ , [ @value = ] { 'value' } 
        [ , [ @level0type = ] { 'level0_object_type' } 
          , [ @level0name = ] { 'level0_object_name' } 
                [ , [ @level1type = ] { 'level1_object_type' } 
                  , [ @level1name = ] { 'level1_object_name' } 
                        [ , [ @level2type = ] { 'level2_object_type' } 
                          , [ @level2name = ] { 'level2_object_name' } 
                        ] 
                ]
        ] 
    ] 
[;]

實際上使用的話,如果要在某個欄位上加上說明,只要像下面這樣寫就可以了
use YOUR_DBNAME;
GO
EXEC sp_addextendedproperty 
@name = N'Description', @value = N'你的說明',
@level0type = N'Schema', @level0name = dbo,
@level1type = N'Table',  @level1name = TABLE_NAME,
@level2type = N'Column', @level2name = COLUMN_NAME;
GO
YOUR_DBNAME, TABLE_NAME, COLUMN_NAME 請自行修改

如果只要在Table上加Description,level2那邊參數別給就好。

其實這個sp_addextendedproperty指令是用來新增擴展屬性的,所以要增加的屬性名稱可以自己修改,如果該表格/欄位已經有了同名的屬性,那就需要用sp_updateextendedproperty這個指令來做修改。

收工。

No comments:

Post a Comment