SQLServer在数据库对象上使用扩展属性

SQL Server 2000 引入了扩展属性,用户可在各种数据库对象上定义这些属性。这些扩展属性可用于存储与数据库对象有关的应用程序或站点特有的信息。因为属性存储在数据库中,所有读取属性的应用程序都能以相同的方式评估对象。这有助于在系统中的所有程序对数据的处理方式上强制一致性。

        每个扩展属性都有用户定义的名称和值。扩展属性值为最多可包含 7,500 字节数据的 sql_variant 值。

        扩展属性的可能用途包括:

  1. 指定表、视图或列的标题。这样,所有应用程序都可在显示表、视图或列信息的用户界面中使用该标题。
  2. 指定列的输入掩码,以便所有应用程序都可在执行 Transact-SQL 语句前验证数据。
  3. 指定关于在列中显示数据的格式规则。
  4. 记录应用程序可显示给用户的对特定数据库对象的描述。
  5. 指定应显示的列大小和窗口位置。

        SQL Server 2000提供了三个系统存储过程和一个函数用于操作扩展属性。它们分别是:

  • sp_addextendedproperty(将新扩展属性添加到数据库对象中。)
  • sp_updateextendedproperty(更新现有扩展属性的值。)
  • sp_dropextendedproperty(除去现有的扩展属性。)
  • fn_listextendedproperty(列出扩展属性)

        下面使用一个例子来说明这些函数的用法。我打算在SQLServer 提供的示例数据库Northwind中的表Categories中的Column CategoryID添加一个Description扩展属性,用以描述CategoryID的用途,可以如下做:
 
sp_addextendedproperty 'Description',  '目录编号',  'user',  dbo,  'table',  Categories,  'column',  CategoryID

其中参数分别指定了扩展属性,扩展属性的值,0级对象是user,0级对象名是dbo,一级对象类型是table,一级对象名是Gategories,二级对象是column,二级对象名是GategoryID。

添加后,运行如下代码可看到添加后的结果:
select * from ::fn_listextendedproperty ('Description',  'user',  'dbo',  'table',  'Categories',  'column',  'CategoryID')

其中的参数分别指定了扩展属性,0级对象,0级对象名,1级对象,1级对象名,2级对象,2级对象名。

得到的列表如下:
objtype          objname            name                value
COLUMN    CategoryID       Description       目录编号

其它的两个存储过程使用的方法类似。

原谅链接:http://www.cnblogs.com/iaxes/articles/30799.html

时间: 2024-10-28 03:12:22

SQLServer在数据库对象上使用扩展属性的相关文章

PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题

原文:PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题 团队合作设计一套系统数据模型,创建了PDM后,Table.View.Store Procedure等都创建好了,且创建了多个Schema方便管理这些数据库对象,但Table.view.Column等对象有Comment时(用来在团队不同成员间共享描述信息) 生成数据库时会得到一个提示"不支持扩展属性,或对象不存在",分析发现异常在类似以下语句: if ex

使用扩展属性快速创建SQL Server数据字典

问题 我需要一个创建能够保持最新数据字典的方法.我对数据库做了很多更改,而我花费于数据 库文档更新的时间多于数据库管理的时间. 专家解答 如果你将元数据存储为扩展属性, 那么你可以使用SQL Server 2005在几秒之内为一个数据库创建一个数据字典.SQL Server 2005 AdventureWorks示例数据库包含了众多扩展属性,所以这个数据库是一个很好的示例.在这篇文章里, 我们将介绍两个核心内容.首先是一组脚本示例,它为表和字段添加扩展属性.其次是生成HTML格式数 据字典的T-

详解SQLServer 2008 R2数据库SSAS建模及扩展能力_mssql2008

SQLServer 2008 R2数据库中提供的SSAS建模工具包括包括SQL Server Management Studio 和Business Intelligence Development Studio,那么建模的过程是怎样的呢?本文我们就来介绍这些,接下来就让我们来一起了解一下SQLServer 2008 R2数据库的建模工具和关键过程以及数据挖掘.权限和访问接口等的知识吧. 建模工具和关键过程 SSAS的建模的目的是设计多维数据库对象,建模的工具包括SQL Server Manag

中小型商城系统中的分类/产品属性/扩展属性的数据库设计

声明:之所以定位在"中小型"商城系统,而非"大型"(指淘宝.拍拍这类巨无霸),理由很简单----我一直都呆在(创业型的)小公司,没见过这些大家伙是怎么设计的:)   正文: 之前发表过一篇"商城系统中[商品扩展属性]的表单生成及客户端验证",部分童鞋对于后台数据库的设计比较感兴趣,于是今天把这部分也补上.   一.产品分类设计越来越多的商城系统都热衷于选择"无限级分类"的设计,我也不例外,因为它方便扩展.这部分就不详细展开了,

SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。

 今天遇到一个案例:右键单击数据库的属性时出现下面错误提示:         属性Owner不可用于数据库xxx,该对象可能没有此属性,也可能是访问权限不足而无法检索.    使用脚本查看该数据库的Owner时发现Owner为null.具体原因是因为该数据库的Owner是一个系统管理员的账号,由于该同事离职,接手的系统管理员将该账号清除了,所以出现上面错误.此时用下面脚本查询,就会发现该Owner为null值. SELECT  d.name ,         owner_sid ,      

SqlServer 扩展属性的介绍_MsSql

SqlServer帮助中对扩展属性的描述是: The Extended Properties property sets or retrieves provider-specific connection information that cannot be explicitly described through the property mechanism. 对于扩展属性有如下操作: 复制代码 代码如下: exec sp_addextendedproperty N'MS_Descriptio

oracle搭建-现在要把一个大项目的数据库从sqlserver转移到oracle上

问题描述 现在要把一个大项目的数据库从sqlserver转移到oracle上 现在要把一个大项目的数据库从sqlserver转移到oracle上 保证健壮性.可用性.安全性,开发便捷性,用哪些方法达成 解决方案 写段程序,建立两个数据源,一个表一个表的对应字段的导入,我测试过,可以的. 解决方案二: 1,首先要了解两个数据库中的区别. 2,一张表一张表的倒. 3,要严格对待大小写是否区分问题. 解决方案三: 你们有没有买oracle 的license,如果有的话 oracle会很乐意上门为你们做

SqlServer 扩展属性的介绍

SqlServer帮助中对扩展属性的描述是: The Extended Properties property sets or retrieves provider-specific connection information that cannot be explicitly described through the property mechanism. 对于扩展属性有如下操作: 复制代码 代码如下:exec sp_addextendedproperty N'MS_Description

使用VS2010的Database项目模板统一管理数据库对象

使用VS2010的Database 项目模板统一管理数据库对象 Visual Studio 2010 有一个数据库项目模板:Visual Studio Database Project(以下简称VSDP),VS 2003/2005/2008也有类似的项目,在VS2010上的得到了很大的加强,现在还具备了智能感知,构建时验证和自动部署功能,VSDP是针对典型的数据库开发任务而设计的,可以对原有数据库反向工程,添加表,存储过程和其他数据库项目,而且有选择性地将修改部署到目标数据库中.他的主要特性有: