取得SQLServer字段的详细解说


  本文标签:SQLServer字段

  文章主要描述的是取得SQLServer字段的详细解说,在实际操作中又是我们会涉及到SQLServer字段的获取,那么如何正确的获取SQLServer字段呢?以下的文章主要是正对这个问题给出的详细解答方案  。

  1. fn_listextendedproperty 

  返回数据库对象的扩展属性值  。 语法  

  

  1. fn_listextendedproperty (  
  2. { default | [ @name = ] 'property_name' | NULL }  
  3. , { default | [ @level0type = ] 'level0_object_type' | NULL  
  4. fn_listextendedproperty 

  返回数据库对象的扩展属性值  。 语法  

  

  1. fn_listextendedproperty (  
  2. { default | [ @name = ] property_name | NULL }  
  3. , { default | [ @level0type = ] level0_object_type | NULL }  
  4. , { default | [ @level0name = ] level0_object_name | NULL }  
  5. , { default | [ @level1type = ] level1_object_type | NULL }  
  6. , { default | [ @level1name = ] level1_object_name | NULL }  
  7. , { default | [ @level2type = ] level2_object_type | NULL }  
  8. , { default | [ @level2name = ] level2_object_name | NULL }   

  参数  

  1. {default|[@name =] property_name|NULL} 

  取得SQLServer字段是属性的名称  。property_name 为 sysname 类型  。有效的输入为 default、NULL 或属性名  。

  1. {default|[@level0type =] level0_object_type|NULL} 

  用户或用户定义类型  。level0_object_type 的数据类型为 varchar(128),其默认值为 NULL  。有效的输入是 USER、TYPE、default 和 NULL  。

  1. {default|[@level0name =] level0_object_name|NULL} 

  指定的 0 级对象类型的名称  。level0_object_name 的数据类型为 sysname,其默认值为 NULL  。有效的输入为 default、NULL 或对象名  。

  1. {default|[@level1type =] level1_object_type|NULL} 

  1 级对象的类型  。level1_object_type 的数据类型为 varchar(128),其默认值为 NULL  。有效的输入为 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE、default 和 NULL  。

  说明 默认映射 NULL,而"default"映射对象类型 DEFAULT  。

  1. {default|[@level1name =] level1_object_name|NULL} 

  取得SQLServer字段指定的 1 级对象类型的名称  。level1_object_name 的数据类型为 sysname,其默认值为 NULL  。有效的输入为 default、NULL 或对象名  。

  1. {default|[@level2type =] level2_object_type|NULL} 

  2 级对象的类型  。level2_object_type 的数据类型为 varchar(128),其默认值为 NULL  。有效的输入为 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER、DEFAULT、default(映射 NULL)和 NULL  。

  1. {default|[@level2name =] level2_object_name|NULL} 

  指定的 2 级对象类型的名称  。level2_object_name 的数据类型为 sysname,其默认值为 NULL  。有效的输入为 default、NULL 或对象名  。

  返回表下面是 fn_listextendedproperty 返回的表的格式  。

  列名 数据类型  

  1. objtype sysname   
  2. objname sysname   
  3. name sysname   
  4. value sql_variant 

  如果返回的表为空,可能对象没有扩展属性或用户没有列出对象扩展属性的权限  。

  

  注释系统对象不允许有扩展属性  。

  如果 property_name 的值为 NULL 或 default,fn_listextendedproperty 返回对象的所有属性  。

  如果指定了对象类型且相应的对象名的值为 NULL 或 default,则 fn_listextendedproperty 返回指定类型的所有对象的所有扩展属性  。

  对象是按级别区分的,0 级为最高,2 级为最低  。如果指定了较低级别的对象(1 或 2 级)类型和名称,则父对象类型和名称的值不能为 NULL 或 default  。否则,函数将返回错误  。

  用于列出某些级别对象类型的扩展属性的权限有所不同  。

  对于级别 0 的对象,如果某用户为级别 0 的名称中所标识的用户,或者是 db_owner 和 db_ddladmin 固定数据库角色的成员,则该用户可以列出指定"user"类型的扩展属性  。

  取得SQLServer字段所有用户可使用 0 级对象类型"type"列出扩展属性  。

  

  对于 1 级对象,如果用户为对象的所有者或用户对于对象有权限,该用户可以用任何有效的类型值列出扩展属性  。

  

  对于 2 级对象,如果当前用户对父对象(1 级和 0级)有任何权限,该用户可以用任何有效的类型值列出扩展属性  。 示例此示例列出数据库的所有扩展属性  。

  

  1. SELECT *  
  2. FROM ::fn_listextendedproperty(NULL, NULL, NULL, NULL, NULL, NULL, NULL) 

  -或-

  1. SELECT *  
  2. FROM ::fn_listextendedproperty(default, default, default, default, default, default, default) 

  此示例列出表"T1"中所有列的所有扩展属性  。

  1. CREATE table T1 (id int , name char (20))  
  2. EXEC sp_addextendedproperty caption, Employee ID, user, dbo, table, T1, column, id  
  3. EXEC sp_addextendedproperty caption, Employee Name, user, dbo, table, T1, column, name  
  4. SELECT *  
  5. FROM ::fn_listextendedproperty (NULL, user, dbo, table, T1, column, default  

  )

  下面是结果集:

  1. objtype objname name value   
  2. COLUMN id caption Employee ID   
  3. COLUMN name caption Employee N 

  以上的相关内容就是对取得SQLServer字段的介绍,望你能有所收获  。