SELECT
DB_NAME(DB_ID()) as DBName
,SCHEMA_NAME(sOBJ.schema_id) as SchemaName
,sOBJ.name AS TableName
, sEXP.value AS [TableDescription]
,sOBJ.type_desc As ObjectType
,sOBJ.create_date As CreateDate
,sOBJ.modify_date As ModifyDate
FROM
[sys].[objects] AS [sOBJ]
LEFT JOIN [sys].[extended_properties] AS [sEXP]
ON [sOBJ].[object_id] = [sEXP].[major_id]
AND [sEXP].[minor_id] = 0
AND [sEXP].[name] = N'MS_Description'
WHERE [sOBJ].[type] IN ('U','V','TR','P')
我不知道有什么简单的方法可以提取它们并重新应用于另一个目标,但您可以使用中的数据
sys.extended_properties
生成一个脚本,通过调用sp_addextendedproperty
.请参阅https://msdn.microsoft.com/en-us/library/ms177541.aspx和https://msdn.microsoft.com/en-us/library/ms180047.aspx以获取一些相关文档。
如果目标数据库可能已经包含一些属性(来自早期的传输,或由于其他原因添加),那么您生成的脚本可能需要更聪明并检查它是否应该调用
sp_updateextendedproperty
(也可能sp_dropextendedproperty
删除现在已弃用的属性) ).您可以使用此脚本从您的开发数据库中获取列描述。
然后将带有 DataBase/Instance/Table/Column/Description 的表上传到您的生产服务器,并使用以下脚本在您的服务器上插入描述。它仅适用于没有先前描述的字段,因此您必须先前进行过滤。