以ms sql server 14 v17為例。 如下表dbo.Q中有一個欄位'' 首先在資料庫的系統存儲過程列表中: 找到sys.sp_addextendedproperty,使用這個為欄位添加一個說明。 EXECUTE [sys].[sp_addextendedproperty] @name=N ...
以ms sql server 14 v17為例。
如下表dbo.Q中有一個欄位''
首先在資料庫的系統存儲過程列表中:
找到sys.sp_addextendedproperty,使用這個為欄位添加一個說明。
EXECUTE [sys].[sp_addextendedproperty] @name=N'MS_Description', @value=N'數量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Q', @level2type=N'COLUMN',@level2name=N'qty'View Code
執行結果:
如果你不清楚MS_Description是否存在時,再次執行上面的存儲過程,你會得到一個error提示:
這個時候,你可以在執行前,先來判斷一下是否存在:
IF EXISTS (SELECT TOP 1 1 FROM fn_listextendedproperty('MS_Description', 'SCHEMA', N'dbo', 'TABLE', N'Q', 'COLUMN', N'qty')) PRINT 'exists' ELSE PRINT 'not exists'View Code
好的,如果我們知道說明屬性已經存在,但內容不正確,我們想要修改它:
此時,你可以DROP之後,再添加。
EXECUTE [sys].[sp_dropextendedproperty] 'MS_Description', 'SCHEMA', N'dbo', 'TABLE', N'Q', 'COLUMN', N'qty'View Code
或者,你不想這樣麻煩,你可以直接使用update來處理。
EXECUTE [sys].[sp_updateextendedproperty] @name=N'MS_Description', @value=N'庫存數量' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Q', @level2type=N'COLUMN',@level2name=N'qty'View Code
再次去看看修改後的欄位說明內容
到最後,想說的,可以寫成一個動態的SQL包裝成一個自定義存儲過程。
這樣子,我們不管是在添加,或是更新時,直接傳入參數即可。