SQL2005批量删除字段说明描述

来源:互联网 发布:java 服务器 物联网 编辑:程序博客网 时间:2024/06/16 04:56

USE [your database]  //数据库
GO

SET NOCOUNT ON

DECLARE 
    @major_id int,
    @minor_id int,
    @schema sysname,
    @table sysname,
    @column sysname,
    @sql nvarchar(1000)


DECLARE cur CURSOR LOCAL STATIC READ_ONLY FORWARD_ONLY
FOR
SELECT
    major_id,
    minor_id
FROM sys.extended_properties
WHERE name = 'MS_Description'

OPEN cur
FETCH NEXT FROM cur INTO @major_id,@minor_id
WHILE @@FETCH_STATUS = 0
BEGIN

    SELECT 
        @schema = SCHEMA_NAME(a.schema_id),
        @table = a.name,
        @column = b.name
    FROM sys.tables a
    JOIN sys.columns b
        on a.object_id = b.object_id
            AND b.column_id = @minor_id
    WHERE a.object_id = @major_id
        
    SET @sql = N'
    EXEC SP_dropextendedproperty  
        @name = ''MS_Description'' 
        ,@level0type = ''schema'' 
        ,@level0name = ' + @schema + '
        ,@level1type = ''table''
        ,@level1name = ''' + @table + '''
        ,@level2type = ''column''
        ,@level2name = ''' + @column + ''''
    --PRINT @sql 
    EXEC SP_EXECUTESQL @sql

    FETCH NEXT FROM cur INTO @major_id,@minor_id
END
CLOSE cur
DEALLOCATE cur

0 0
原创粉丝点击