手记

清除sql2005中字段的字段备注信息方法

如何清除sql2005中字段的字段备注信息?(downmoon)
比如一个表t1,
字段tID int Primary Int 字段说明 '主键'
字段tName nvarchar(100) 字段说明 '名称'
字段tTime nvarchar(100) 字段说明 '创建时间'
字段tState nvarchar(100) 字段说明 '当前状态'

现在想清除字段的备注信息,如“主键”、“名称”、“创建时间”等

select * from sys.extended_properties 
where [name]='MS_Description'


这条语句只能查看, 不能删除或更新

delete from sys.extended_properties where [name]='MS_Description'
update sys.extended_properties  set [value]='' where [name]='MS_Description'

上面两句均出错! 提示:
消息 259,级别 16,状态 1,第 1 行
不允许对系统目录进行即席更新。


后来在微软网站查得结果

示例
A. 删除列上的扩展属性

以下示例从架构 dbo 内包含的表 T1 中的列 id 上删除属性 'caption'。

CREATE TABLE T1 (id int , name char (20));
GO
EXEC sp_addextendedproperty 
    @name = 'caption' 
    ,@value = 'Employee ID' 
    ,@level0type = 'schema' 
    ,@level0name = dbo
    ,@level1type = 'table'
    ,@level1name = 'T1'
    ,@level2type = 'column'
    ,@level2name = id;
GO
EXEC sp_dropextendedproperty 
     @name = 'caption' 
    ,@level0type = 'schema' 
    ,@level0name = dbo
    ,@level1type = 'table'
    ,@level1name = 'T1'
    ,@level2type = 'column'
    ,@level2name = id;
GO
DROP TABLE T1;
GO

B. 删除数据库中的扩展属性

以下示例从 AdventureWorks 示例数据库中删除名为 MS_Description 的属性。由于属性位于数据库本身中,因此不指定对象类型和名称。

USE AdventureWorks;
GO
EXEC sp_dropextendedproperty 
@name = N'MS_Description';
GO

但以上语句无法执行, 

后来用生成的sp_addextendedproperty修改为sp_dropextendedproperty 实现。

0人推荐
随时随地看视频
慕课网APP