如何增加字段描述,取得字段描述

本文介绍如何在SQLServer中使用扩展属性为字段添加、修改和删除描述信息,并提供了查询字段描述的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何增加字段描述,取得字段描述,我也有回答,也看到其他同仁的答案,这里整理一下!

  新增:我们知道在SQL Server 2000中,Microsoft添加了扩展属性,用于帮助用户在多个数据库对象上定义和操作用户定义的属性。

exec sp_addextendedproperty N'MS_Description', N'字段描述', N'user', N'dbo', N'table', N'表名', N'column', N'字段名'
GO

例如:EXEC sp_addextendedproperty N'MS_Description',N'地址',N'user', dbo,N'table', N'a', N'column', a_add
GO--我的表是a,要给字段a_add加上字段描述:地址

其他相关:

删除:

EXEC sp_dropextendedproperty N'MS_Description',N'user', dbo,N'table', N'表名', N'column', 字段名

修改:

EXEC   sp_updateextendedproperty N'MS_Description', N'字段描述', N'user', dbo,N'table',N'表名', 'column', 字段

至于查询出来,sql server有提供系统函数fn_listextendedproperty ():

--获取某一个字段的描述
SELECT   *
FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '表名', 'column', default)--其他变数,按照你的要求你照写即可,只要表名换成你的
where objname = '字段名'

另外也可以自己查询系统表:

SELECT o.name AS tableName, c.name AS columnName, p.[value] AS Description
FROM sysproperties p INNER JOIN
      sysobjects o ON o.id = p.id INNER JOIN
      syscolumns c ON p.id = c.id AND p.smallid = c.colid
WHERE (p.name = 'MS_Description')
ORDER BY o.name
 

sql表列字段描述默认值删除字段 //删除表 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[JHCRM_Report_ss]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [JHCRM_Report_ss] //添表 if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Table1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) create table [Table1] ([col1] int,[col2] int) //添字段 if not exists( select * from syscolumns where syscolumns.[name]='FNewObjectEnd' and syscolumns.[id]=(select id from dbo.sysobjects where id=object_id(N'[dbo].[jsc_financial]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) ) ALTER TABLE jsc_financial ADD FNewObjectEnd int--NULL --添先用项目结项数 go EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'先用项目结项数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'jsc_financial', @level2type=N'COLUMN',@level2name=N'FNewObjectEnd' if not exists( select * from syscolumns where syscolumns.[name]='Record_Money' and syscolumns.[id]=(select id from dbo.sysobjects where id=object_id(N'[dbo].[JHCRM_Resource_Record_Main]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) ) ALTER TABLE JHCRM_Resource_Record_Main ADD Record_Money numeric(12, 2)--NULL --资源费用 go EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'资源费用' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JHCRM_Resource_Record_Main', @level2type=N'COLUMN',@level2name=N'Record_Money' //删除字段 if not exists( select * from syscolumns where syscolumns.[name]=table_Name and syscolumns.[id]=(select id from dbo.sysobjects where id=object_id(N'[dbo].[tableName]')" and OBJECTPROPERTY(id, N'IsUserTable') = 1) ) ALTER TABLE table_Name DROP COLUMN tableName
### SQL 中 `SUBSTRING` 函数的使用方法 在不同的数据库管理系统(DBMS)中,`SUBSTRING` 函数用于从字符串中的特定位置开始提取子串。以下是关于如何在 SQL 语句中使用 `SUBSTRING` 的详细介绍。 #### MySQL 中的 `SUBSTRING` 使用 在 MySQL 数据库中,可以通过 `SUBSTRING()` 或其同义词 `SUBSTR()` 来实现字段截取功能。该函数接受三个参数:目标列名、起始位置以及需要截取的长度。例如,如果希望获取某列值的前五个字符,则可执行以下查询: ```sql SELECT SUBSTRING(column_name, 1, 5) FROM table_name; ``` 此操作会返回表中每一行对应字段自第一个字符算起到第五个为止的部分[^1]。 #### SQL Server 下的应用实例 对于 Microsoft SQL Server 用户而言,同样支持通过调用内置的 `SUBSTRING()` 方法完成类似需求处理。它遵循的标准形式为 `SUBSTRING(string_expression ,start_position, length)` ,其中: - **string_expression**: 表达式可以是常量、变量或者来自表格的一列; - **start_position**: 定位到打算取出片段的第一个字母所在处索引号(注意,在这里计数是从左至右按自然顺序排列并以整数值表示),并且不允许小于等于零; - **length**: 明确告知系统应该连续读取多少单位的数据作为最终结果集的一部分呈现出来给使用者查看。 下面给出了一段示范代码展示怎样利用上述机制仅保留单词 “World” : ```sql DECLARE @str VARCHAR(20) = 'Hello World'; SELECT SUBSTRING(@str, 7, 5) AS Result; -- 结果将是 'World' ``` 这段脚本先定义了一个局部变量存储初始文本串,接着运用 `SUBSTRING` 提取消息主体里的第二部分即代表地球名称的那个词汇[^2]。 #### 普适性的描述方式 更广泛地说,无论在哪种环境下部署这项技术手段都离不开基本框架结构——指定源对象上界定范围界限即可达成目的。比如当面对名为 name 的属性时,如果我们想取得它的中间一段固定大小的内容就可以这样写成: ```sql SELECT SUBSTRING(name, 5, 3); ``` 这意味着将针对记录集合里每一个成员的名字项目实施切割动作,具体做法是从第5个单元起步向前推进直到满足累计满3步距离停止收集材料形成新的输出序列[^3]。 ### 总结 综上所述,无论是哪种类型的 RDBMS 平台之上都可以借助于统一命名模式下的 substring 功能轻松解决实际业务场景下遇到的各种复杂情况下的数据工难题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值