MS SQLServer 使用列扩展属性添加表字段说明

MS SQLServer 使用列扩展属性添加表字段说明

方式一:在SSMS对象资源管理器中添加表字段扩展属性

在这里插入图片描述

方式二:使用T-SQL添加表字段说明

2.1 创建添加表字段说明的存储过程

--功能:删除表@tblName的@FieldName字段的字段说明
CREATE Proc sp_SYS_DropFieldDesc(@tblName varchar(50), @FieldName varchar(50))
As
	if Exists(Select 1 From sys.fn_listextendedproperty('MS_Description', 'user', 'dbo', 'table', @tblName, 'column', @FieldName))
		Exec sp_DropExtendedProperty 'MS_Description', 'user', 'dbo', 'table', @tblName, 'column', @FieldName
		
--功能:向表@tblName的@FieldName字段增加字段说明@Description
CREATE  Proc sp_SYS_AddFieldDesc(@tblName varchar(50), @FieldName varchar(50), @Description varchar(255))
As
	Exec sp_SYS_DropFieldDesc @tblName, @FieldName	
	Exec sp_AddExtendedProperty 'MS_Description', @Description, 'user', 'dbo', 'table', @tblName, 'column', @FieldName
Go

2.2 直接调用存储过程添加字段说明

Exec sp_SYS_AddFieldDesc 't_SYS_PrjInfo', 'PrjName', '工程名称AppPrjName'

2.3 读取添加的字段说明

--功能:读取表@tblName的@FieldName字段的字段说明
Create Function f_SYS_GetFieldDesc(@tblName varchar(50), @FieldName varchar(50))
	Returns Varchar(254)
As
Begin
	Return ISNULL((Select Cast(Value as varchar(254)) From ::fn_listextendedproperty('MS_Description', 'user', 'dbo', 'table', 
			@tblName, 'column', @FieldName)), '')
End

--Select dbo.f_SYS_GetFieldDesc('t_SYS_PrjInfo', 'PrjName') --工程名称AppPrjName

2.4 读取表字段名称、类型、主键、说明等信息

--功能:获取表字段信息
Create Proc sp_SYS_TableInfo(@TableName varchar(100))
As 
	Select 
		PrimaryKey = Case When i.is_primary_key Is Not Null Then '√' Else '' End,
		Colname = c.Name,
		TypeName = t.Name,
		[Length] = c.max_length,
		IsNullable = Case when c.is_nullable = 0 then '' else '√' end,
		IsIdentity = Case when c.is_identity = 0 then '' else '√' end,
		ISNULL((select Top 1 q.text from syscomments q Where q.id=c.default_object_id),'') as DefaultValue,
		ColDESC = dbo.f_SYS_GetFieldDesc(@TableName, c.Name),
		c.precision ,
		c.scale
	From sys.columns c
		Inner Join sys.types t On c.system_type_id = t.system_type_id And c.user_type_id = t.user_type_id
		Left Outer Join ( sys.index_columns ic
							Inner Join sys.indexes i On ic.object_id = i.object_id
														And i.is_primary_key = 1
														And ic.index_id = i.index_id
						) On ic.object_id = c.object_id
								And ic.column_id = c.column_id
	Where c.object_id = Object_Id(@TableName)
	Order By c.Column_ID 

效果如下图:
在这里插入图片描述
说明:以上使用的是SQL Server2014版本

使用技巧

在SSMS工具—选项—键盘快捷方式中设置好快捷方式对应执行的存储过程,如Ctrl+3设置为我们上面创建的sp_SYS_TableInfo存储过程,这样就可以直接使用快捷方式快速的查看任何数据库表的字段名称、类型、主键、说明等信息。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酥饼大人。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值