zoukankan      html  css  js  c++  java
  • SQL SERVER中的扩展属性

    以前在SQL SERVER建表时,总看到扩展属性,但一直未使用过。今天研究下:

    增加扩展属性:

    语法:

    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' } 
                            ] 
                    ]
            ] 
        ] 

    注明:为了指定扩展属性,将 SQL Server 数据库中的对象分为三个级别:0、1 和 2。级别 0 是最高级别,该级别被定义为在数据库作用域包含的对象。级别 1 的对象包含在架构作用域或用户作用域中,而级别 2 的对象包含在级别 1 对象中。可以为这些级别中任一级别的对象定义扩展属性。

    将扩展属性添加到数据库中

    EXEC sp_addextendedproperty 
    @name = N'Caption', @value = ' OLTP Database';

    将输入掩码属性添加到列中

    EXEC sp_addextendedproperty
    @name= N'Input Mask ', @value='99999 or 99999-9999 or #### ###',
    @level0type= N'Schema', @level0name= Person,
    @level1type= N'Table', @level1name= Address,
    @level2type= N'Column',@level2name= PostalCode;

    将扩展属性添加到表中的列

    EXEC sp_addextendedproperty 
    @name = N'Caption', @value = 'Postal code is a required column.',
    @level0type = N'Schema', @level0name = dbo,
    @level1type = N'Table',  @level1name = Address,
    @level2type = N'Column', @level2name = PostalCode;

    将扩展属性添加到文件组中

    EXEC sys.sp_addextendedproperty 
    @name = N'MS_DescriptionExample', 
    @value = N'Primary filegroup for the AdventureWorks sample database.', 
    @level0type = N'FILEGROUP', @level0name = [PRIMARY];
    查看扩展属性:
    SELECT major_id, minor_id, t.name AS [Table Name], c.name AS [Column Name], value AS [Extended Property]
    FROM sys.extended_properties AS ep
    INNER JOIN sys.tables AS t ON ep.major_id = t.object_id 
    INNER JOIN sys.columns AS c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
    WHERE class = 1;

      查看数据库级别的扩展属性

    SELECT objtype, objname, name, value
    FROM fn_listextendedproperty(default, default, default, default, default, default, default);

    查看某个架构中所有表的扩展属性

    SELECT objtype, objname, name, value
    FROM fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', default, NULL, NULL);
  • 相关阅读:
    【python cookbook】替换字符串中的子串(使用Template)
    python 学习sys
    【python cookbook】 替换字符串中的子串
    Python文件读写
    【python cookbook】python过滤字符串中不属于指定集合的字符
    【python cookbook】改变多行文本字符串的缩进
    python字符编码
    【python cookbook】python访问子字符串
    【python cookbook】python 控制大小写
    过关了
  • 原文地址:https://www.cnblogs.com/martintuan/p/3274157.html
Copyright © 2011-2022 走看看