zoukankan      html  css  js  c++  java
  • 为SQL Server表中的列添加/修改/删除注释属性(sp_addextendedproperty、sp_updateextendedproperty、sp_dropextendedproperty)

    本篇基本完全参考:sql--sp_addextendedpropertysp_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')

    结果:

  • 相关阅读:
    【LOJ】#3034. 「JOISC 2019 Day2」两道料理
    vue学习笔记(七)组件
    vue学习笔记(五)条件渲染和列表渲染
    vue学习笔记(一)入门
    JavaScript学习总结之函数
    JavaScript学习总结之对象的深拷贝和浅拷贝
    javascript学习总结之Object.assign()方法详解
    ES6学习总结之变量的解构赋值
    ES6学习总结之let和const命令
    javascript学习总结之Object.keys()方法详解
  • 原文地址:https://www.cnblogs.com/walden1024/p/4545688.html
Copyright © 2011-2022 走看看