为SQL Server表中的列添加/修改/删除注释属性(sp_addextendedproperty、sp_updateextendedproperty、sp_dropextendedproperty)
本篇基本完全参考:sql--sp_addextendedproperty和sp_updateextendedproperty (Transact-SQL)
三个存储过程用法一样,以sp_addextendedproperty为例:
- sp_addextendedproperty
- [ @name = ]{ 'property_name' }
- [ , [ @value = ]{ 'value' }
- [, [ @level0type = ]{ 'level0_object_type' }
- , [ @level0name = ]{ 'level0_object_name' }
- [, [ @level1type = ]{ 'level1_object_type' }
- , [ @level1name = ]{ 'level1_object_name' }
- [, [ @level2type = ]{ 'level2_object_type' }
- , [ @level2name = ]{ 'level2_object_name' }
- ]
- ]
- ]
- ]
参数:
- [ @name ] = { 'property_name' }
- 要添加的属性的名称。property_name 的数据类型为 sysname,且不能为 NULL。名称还可以包括空格或非字母数字字符串以及二进制值。
- [ @value= ] { 'value'}
- 要与属性关联的值。value 的数据类型为 sql_variant,默认值为 NULL。value 的大小不能超过 7,500 个字节。
- [ @level0type= ] { 'level0_object_type' }
- 级别 0 对象的类型。level0_object_type 的数据类型为 varchar(128),默认值为 NULL。有效输入包括:ASSEMBLY、CONTRACT、EVENT NOTIFICATION、FILEGROUP、MESSAGE TYPE、PARTITION FUNCTION、PARTITION SCHEME、REMOTE SERVICE BINDING、ROUTE、SCHEMA、SERVICE、USER、TRIGGER、TYPE、PLAN GUIDE 和 NULL。
-
重要提示
将来的 SQL Server 版本中将删除在级别 1 类型对象的扩展属性中指定 USER 作为级别 0 类型的功能。 改用 SCHEMA 作为级别 0 类型。 例如,在定义表的扩展属性时,指定表的架构而不是用户名。 将来的 SQL Server 版本中将删除指定 TYPE 作为级别 0 类型的功能。 对于 TYPE,请使用 SCHEMA 作为级别 0 类型,使用 TYPE 作为级别 1 类型。
- [ @level0name= ] { 'level0_object_name' }
- 所指定的级别 0 对象类型的名称。level0_object_name 的数据类型为 sysname,默认值为 NULL。
- [ @level1type= ] { 'level1_object_type' }
- 级别 1 对象的类型。level1_object_type 的数据类型为 varchar(128),默认值为 NULL。有效的输入包括:AGGREGATE、DEFAULT、FUNCTION、LOGICAL FILE NAME、PROCEDURE、QUEUE、RULE、SYNONYM、TABLE、TABLE_TYPE、TYPE、VIEW、XML SCHEMA COLLECTION 和 NULL。
- [ @level1name= ] { 'level1_object_name' }
- 所指定的级别 1 对象类型的名称。level1_object_name 的数据类型为 sysname,默认值为 NULL。
- [ @level2type= ] { 'level2_object_type' }
- 级别 2 对象的类型。level2_object_type 的数据类型为 varchar(128),默认值为 NULL。有效的输入包括:COLUMN、CONSTRAINT、EVENT NOTIFICATION、INDEX、PARAMETER、TRIGGER 和 NULL。
- [ @level2name= ] { 'level2_object_name' }
- 所指定的级别 2 对象类型的名称。 level2_object_name 的数据类型为 sysname,默认值为 NULL。
- 举例:
- 1.创建测试表:
- if exists(select 1 from sys.tables where object_id=object_id('TestTable'))
- begin
- drop table TestTable
- end
- create table TestTable
- (
- ColumnA varchar(50),
- ColumnB varchar(50)
- )
2.为ColumnA列添加注释:
- exec sp_addextendedproperty
- @name=N'MS_Description',
- @value=N'列A的注释',
- @level0type=N'SCHEMA',
- @level0name=N'dbo',
- @level1type=N'TABLE',
- @level1name=N'TestTable',
- @level2type=N'COLUMN',
- @level2name=N'ColumnA'
3.查看结果:
或者执行sql语句:
- select col.Name,ext.value
- from sys.extended_properties ext
- inner join sys.columns col on ext.major_id=col.object_id and ext.minor_id=col.column_id
- where ext.major_id=object_id('TestTable')
结果:
为SQL Server表中的列添加/修改/删除注释属性(sp_addextendedproperty、sp_updateextendedproperty、sp_dropextendedproperty)的更多相关文章
- 在一个SQL Server表中的多个列找出最大值
在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..# ...
- SQL server 表中如何创建索引?
SQL server 表中如何创建索引?看个示例,你就会了 use master goif db_id(N'zhangxu')is not nulldrop database zhangxugocre ...
- 05Microsoft SQL Server 表创建,查看,修改及删除
Microsoft SQL Server 表创建,查看,修改及删除 创建表 创建普通表 use 数据库名称 go create table 表名称( 列1 ) not null, 列2 ) not n ...
- 09Microsoft SQL Server 表数据插入,更新,删除
Microsoft SQL Server 表数据插入,更新,删除 向表中插入数据 INSERT INTO insert into tb1 values(0004,'张凤凤') insert into ...
- sql得到表中的列信息
取列全部用的 sys. 中的表 CTE:WITH name AS() 用法: sql树形查询 ①主键信息 SELECT ic.column_id, ic.index_column_id, ic.o ...
- SQL Server:把CSV文件导入到SQL Server表中
有时候我们可能会把CSV中的数据导入到某个数据库的表中,比如做报表分析的时候. 对于这个问题,我想一点也难不倒程序人员吧!但是要是SQL Server能够完成这个任务,岂不是更好! 对,SQL Ser ...
- 把CSV文件导入到SQL Server表中
保存数据库数据直接查询select * from tableName 在数据表格的左上角右击——将结果另存为选择路劲保存好的就是.csv格式的数据 有时候我们可能会把CSV中的数据导入到某个数据库的表 ...
- 在一个SQL Server表中一行的多个列找出最大值
有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) D ...
- 导出 SQL SERVER 表中数据为脚本
ALTER PROCEDURE [dbo].[Usp_OutputData] @tablename sysname, @outputIdentitycolumn int AS declare @col ...
随机推荐
- UVA 11624 Fire! (bfs)
算法指南白书 分别求一次人和火到达各个点的最短时间 #include<cstdio> #include<cstring> #include<queue> #incl ...
- 彻底理解position与anchorPoint - Wonderffee's Blog(转)
引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置?CALayer的position点是哪一点呢?anchorPoint与positio ...
- BigInteger Uva
import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static ...
- Eclipse插件收藏列表
viPlugin 2.11.0 AnyEdit Tools 2.4.4 EclipseColorer 0.8.0 PyDev – Python IDE for Eclipse 2.7.5 MoreUn ...
- Java 性能优化技巧及实战
关于Java代码的性能优化,是每个javaer都渴望掌握的本领,进而晋升为大牛的必经之路,但是对java的调优需要了解整个java的运行 机制及底层调用细节,需要多看多读多写多试,并非一朝一夕之功.本 ...
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释 ...
- 微信开发第5章 通过accesstoken获取用户基本信息并修改用户备注
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...
- Oracle学习.Windows 命令行 启动ORACLE服务与实例
使用数据库前要先打开数据库的实例和监听器! --总结启动命令如下: lsnrctl [start|stop|status] --启动监听器,停止监听器,查看监听器的 ...
- C++中this指针的使用方法.
this指针仅仅能在一个类的成员函数中调用,它表示当前对象的地址.以下是一个样例: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 thi ...
- Apache Solr配置
Solr配置 Solr的主要功能是全文检索,该功能分为两个过程:创建索引和对索引进行搜索: 在创建索引之前,需要重点关注两个配置文件:SOLR_HOME/collection1/conf/schema ...