You might also think about having a nice re-runnable script that lets you maintain the extended properties. The system stored procedures for doing this work well, but they are a pain, so I wrap them with my own stored procedure so I can more easily deal with them.
For example, below is a stored procedure targeted at column level extended properties that a) checks to see if the extended property already exists, and b) if so drops it, and c) then adds it.
This lets me maintain a clean re-runnable (which is critical for automated build processes) script of simple one liners to add the extended properties (column level only - you'd need to modify this one or write a similar one for other object types).
Here is the 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 @name=@ExtPropName,
@level0type=N'SCHEMA',
@level0name=@SchemaOwner,
@level1type=N'TABLE',
@level1name=@TableName,
@level2type=N'COLUMN',
@level2name=@ColumnName
END
-- add it
EXEC sys.sp_addextendedproperty @name=@ExtPropName,
@value=@ExtPropValue,
@level0type=N'SCHEMA',
@level0name=@SchemaOwner,
@level1type=N'TABLE',
@level1name=@TableName,
@level2type=N'COLUMN',
@level2name=@ColumnName
GO