笔记155 取SQL 数据库中的表的字段说明和表说明

笔记155 取SQL 数据库中的表的字段说明和表说明

  1 --取SQL 数据库中的表的字段说明和表说明
  2 --http://social.technet.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/2a90ca5d-85b8-4597-b72b-94762c2dcac7
  3 --http://msdn.microsoft.com/zh-cn/library/ms180047.aspx
  4 --表及字段描述信息处理示例
  5 
  6 --创建表
  7 USE [pratice]
  8 GO
  9 create table 表(a1 varchar(10),a2 char(2))
 10 
 11 --为表添加描述信息
 12 EXECUTE sp_addextendedproperty N'MS_Description', '人员信息表', N'user', N'dbo', N'table', N'', NULL, NULL
 13 
 14 --为字段a1添加描述信息
 15 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N'table', N'', N'column', N'a1'
 16 
 17 --为字段a2添加描述信息
 18 EXECUTE sp_addextendedproperty N'MS_Description', '性别', N'user', N'dbo', N'table', N'', N'column', N'a2'
 19 
 20 --更新表中列a1的描述属性:
 21 EXEC sp_updateextendedproperty 'MS_Description','字段1','user',dbo,'table','','column',a1
 22 
 23 --显示表的描述属性
 24 --如果返回的表为空,可能对象没有扩展属性或用户不具有列出对象扩展属性的权限。当返回数据库本身的扩展属性时,objtype 和 objname 列将为 NULL
 25 SELECT   *
 26 FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '', 'column', NULL)
 27 
 28 --删除表中列a1的描述属性:
 29 EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','','column',a1
 30 
 31 --删除测试
 32 drop table 33 
 34 EXEC [sys].[sp_addextendedproperty] @name = 'MS_Description', -- sysname
 35     @value ='测试表' , -- sql_variant
 36     @level0type = 'schema', -- varchar(128)
 37     @level0name = 'dbo', -- sysname
 38     @level1type = 'table', -- varchar(128)
 39     @level1name = 'test' -- sysname
 40 --    @level2type = '', -- varchar(128)
 41 --    @level2name = NULL -- sysname
 42    
 43 SELECT * FROM [sys].[fn_listextendedproperty]()
 44 --如果 property_name 的值为 NULL 或默认值,则 fn_listextendedproperty 将返回指定对象的所有属性。
 45 --
 46 --如果指定了对象类型,并且对应的对象名的值为 NULL 或默认值,则 fn_listextendedproperty 将返回指定类型的所有对象的所有扩展属性。
 47 --
 48 --对象是按级别区分的,级别 0 为最高,级别 2 为最低。如果指定了较低级别的对象(级别 1 或级别 2)的类型和名称,则父对象类型和名称应当为 NULL 或默认值以外的给定值。否则,此函数返回空结果集。
 49 
 50 --A. 显示数据库的扩展属性
 51 --
 52 --以下示例显示为数据库对象本身设置的所有扩展属性。
 53 USE [pratice];
 54 GO
 55 SELECT objtype, objname, name, value
 56 FROM fn_listextendedproperty(default, default, default, default, default, default, default);
 57 GO
 58 
 59 --
 60 --B. 显示表中所有列的扩展属性
 61 --
 62 --以下示例列出 ScrapReason 表中各列的扩展属性。这包含在架构 Production 中。
 63 
 64 USE [pratice];
 65 GO
 66 SELECT objtype, objname, name, value
 67 FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'test', 'column', default);
 68 GO
 69 --
 70 --C. 显示架构中所有表的扩展属性
 71 --
 72 --以下示例列出了在 Sales 架构中所包含的所有表的扩展属性。
 73 
 74 USE [pratice];
 75 GO
 76 SELECT objtype, objname, name, value
 77 FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
 78 GO
 79 
 80 
 81 
 82 
 83 --为了指定扩展属性,SQL Server 数据库中的对象分为三个级别:0、1 和 2。 级别 0 是最高级别,定义为在数据库作用域内包含的对象。 级别 1 的对象包含在架构作用域或用户作用域中,而级别 2 的对象包含在级别 1 对象中。 可以为这些级别中任一级别的对象定义扩展属性
 84 
 85 --引用某个级别中的对象必须用拥有或包含它们的更高级别对象的名称进行限制。 例如,当将扩展属性添加到表列(级别 2)时,还必须指定包含该列的表名(级别 1)以及包含该表的架构(级别 0)。
 86 --
 87 --如果所有对象类型和名称都为空,则属性属于当前数据库本身。
 88 --
 89 --对于系统对象、用户定义数据库的作用域以外的对象或者未在 Arguments 中作为有效输入列出的对象,不允许使用扩展属性。
 90 
 91 
 92 --
 93 --A.将扩展属性添加到数据库中
 94 --
 95 --以下示例将值为 'AdventureWorks2012 Sample OLTP Database' 的属性名称 'Caption' 添加到 AdventureWorks2012 示例数据库中。
 96 
 97 USE AdventureWorks2012;
 98 GO
 99 --Add a caption to the AdventureWorks2012 Database object itself.
100 EXEC sp_addextendedproperty
101 @name = N'Caption',
102 @value = 'AdventureWorks2012 Sample OLTP Database';
103 
104 --B.将扩展属性添加到表中的列
105 --
106 --以下示例将标题属性添加到 Address 表中的 PostalCode 列。
107 
108 USE AdventureWorks2012;
109 GO
110 EXEC sp_addextendedproperty
111 @name = N'Caption',
112 @value = 'Postal code is a required column.',
113 @level0type = N'Schema', @level0name = 'Person',
114 @level1type = N'Table',  @level1name = 'Address',
115 @level2type = N'Column', @level2name = 'PostalCode';
116 GO
117 
118 
119 
120 
121 --C.将输入掩码属性添加到列中
122 --
123 --以下示例将输入掩码属性 '99999 or 99999-9999 or #### ###' 添加到 Address 表中的 PostalCode 列。
124 
125 USE AdventureWorks2012;
126 GO
127 EXEC sp_addextendedproperty
128 @name = N'Input Mask ', @value = '99999 or 99999-9999 or #### ###',
129 @level0type = N'Schema', @level0name = 'Person',
130 @level1type = N'Table', @level1name = 'Address',
131 @level2type = N'Column',@level2name = 'PostalCode';
132 GO
133 
134 
135 --D.将扩展属性添加到文件组中
136 --
137 --下面的示例向 PRIMARY 文件组添加了一个扩展属性。
138 
139 USE AdventureWorks2012;
140 GO
141 EXEC sys.sp_addextendedproperty
142 @name = N'MS_DescriptionExample',
143 @value = N'Primary filegroup for the AdventureWorks2012 sample database.',
144 @level0type = N'FILEGROUP', @level0name = 'PRIMARY';
145 GO
146 
147 
148 --E.将扩展属性添加到架构中
149 --
150 --下面的示例向 HumanResources 架构添加了一个扩展属性。
151 
152 USE AdventureWorks2012;
153 GO
154 EXECUTE sys.sp_addextendedproperty
155 @name = N'MS_DescriptionExample',
156 @value = N'Contains objects related to employees and departments.',
157 @level0type = N'SCHEMA',
158 @level0name = 'HumanResources';
159 
160 
161 --F.将扩展属性添加到表中
162 --
163 --下面的示例将扩展属性添加到 Person 架构中的 Address 表。
164 
165 USE AdventureWorks2012;
166 GO
167 EXEC sys.sp_addextendedproperty
168 @name = N'MS_DescriptionExample',
169 @value = N'Street address information for customers, employees, and vendors.',
170 @level0type = N'SCHEMA', @level0name = 'Person',
171 @level1typ
172 
173 
174 --G.将扩展属性添加到角色中
175 --
176 --下面的示例创建了一个应用程序角色并向该角色添加了一个扩展属性。
177 
178 USE AdventureWorks2012;
179 GO
180 CREATE APPLICATION ROLE Buyers
181 WITH Password = '987G^bv876sPY)Y5m23';
182 GO
183 EXEC sys.sp_addextendedproperty
184 @name = N'MS_Description',
185 @value = N'Application Role for the Purchasing Department.',
186 @level0type = N'USER',
187 @level0name = 'Buyers';
188 
189 
190 
191 --H.将扩展属性添加到类型中
192 --
193 --下面的示例向类型添加了一个扩展属性。
194 
195 USE AdventureWorks2012;
196 GO
197 EXEC sys.sp_addextendedproperty
198 @name = N'MS_Description',
199 @value = N'Data type (alias) to use for any column that represents an order number. For example a sales order number or purchase order number.',
200 @level0type = N'SCHEMA',
201 @level0name = N'dbo',
202 @level1type = N'TYPE',
203 @level1name = N'OrderNumber';
204 
205 
206 --I.向用户添加扩展属性
207 --
208 --下面的示例创建了一个用户并向该用户添加了一个扩展属性。
209 
210 USE AdventureWorks2012;
211 GO
212 CREATE USER CustomApp WITHOUT LOGIN ;
213 GO
214 EXEC sys.sp_addextendedproperty
215 @name = N'MS_Description',
216 @value = N'User for an application.',
217 @level0type = N'USER',
218 @level0name = N'CustomApp';

 

posted @ 2013-08-03 23:27 桦仔 阅读(...) 评论(...) 编辑 收藏