SQL属性说明添加
--1.为表添加描述信息 EXECUTE sp_addextendedproperty N'MS_Description', '表描述', N'user', N'dbo', N'table', N'表名', NULL, NULL --2.删除表说明 EXEC sp_dropextendedproperty N'MS_Description','user','dbo','table', '表名', NULL,NULL --1.为字段name添加描述信息 姓名 EXECUTE sp_addextendedproperty N'MS_Description', '姓名', N'user', N'dbo', N'table', N'表名', N'column', N'name' EXECUTE sp_addextendedproperty N'MS_Description','字段说明内容',N'user',N'dbo',N'table',N'表名',N'column',N'字段名' --2.更新表中列a1的描述属性: EXEC sp_updateextendedproperty 'MS_Description','字段1','user',dbo,'table','表','column',name EXEC sp_updateextendedproperty 'MS_Description','字段说明','user',dbo,'table','Test','column',cn1 --3.删除表中列a1的描述属性: EXEC sp_dropextendedproperty 'MS_Description','user',dbo,'table','表','column',name EXEC sp_dropextendedproperty N'MS_Description', 'user','dbo', 'table', '表名', 'column','字段名' EXEC sp_dropextendedproperty N'MS_Description', 'user','dbo', 'table', 'Test', 'column','cn2' exec [SetColumnInfo] 'Test', 'cn3', N'有钱吗22','varchar(300)','' go /********调用方法********** name: kele 181102 作用: 添加列并添加列描述信息,修改说明 调用: exec [SetColumnInfo] '表名', '列名', N'列说明,描述','列类型{默认:NVARCHAR(50)}','列默认值{默认:NULL}' ******************/ alter PROCEDURE [dbo].[SetColumnInfo] @tableName NVARCHAR(100) --表名 ,@columnName NVARCHAR(100) --列名 ,@columnInfo NVARCHAR(2000) --列说明,描述 ,@columnType NVARCHAR(100)='NVARCHAR(50)' --列类型 例如: NVARCHAR(50) ,@columnDefault NVARCHAR(100)='NULL' --列默认值 例如: NULL as begin IF NOT EXISTS ( SELECT * FROM syscolumns WHERE id = object_id(@tableName) AND NAME = @columnName ) BEGIN print 'exec:'+('ALTER TABLE ' + @tableName + ' ADD ' + @columnName + '' + @columnType + '' + @columnDefault) print 'Add ['+@columnName+'] column' EXEC ('ALTER TABLE ' + @tableName + ' ADD ' + @columnName + ' ' + @columnType + ' ' + @columnDefault) END else begin --修个表结构 print 'exec:'+('ALTER TABLE ' + @tableName + ' ALTER column ' + @columnName + '' + @columnType + '' + @columnDefault) EXEC ('ALTER TABLE ' + @tableName + ' ALTER column ' + @columnName + ' ' + @columnType + ' ' + @columnDefault) end IF EXISTS ( SELECT * FROM::fn_listextendedproperty('MS_Description', 'SCHEMA' --用户或用户定义类型 , N'dbo' --指定的 0 级对象类型的名称 , N'TABLE' --1 级对象的类型 , @tableName --指定的 1 级对象类型的名称 , N'COLUMN' --2 级对象的类型 , @columnName --指定的 2 级对象类型的名称 ) ) BEGIN print 'Edit['+@columnName+']Description' EXEC sys.sp_updateextendedproperty @name = N'MS_Description' --要添加的属性名称 ,@value = @columnInfo --将要与属性相关联的值 ,@level0type = N'SCHEMA' --用户或用户定义类型 ,@level0name = N'dbo' --指定的 0 级对象类型的名称 ,@level1type = N'TABLE' --1 级对象的类型 ,@level1name = @tableName --指定的 1 级对象类型的名称 ,@level2type = N'COLUMN' --2 级对象的类型 ,@level2name = @columnName --指定的 2 级对象类型的名称 END ELSE BEGIN print 'Add['+@columnName+']Description' EXEC sys.sp_addextendedproperty @name = N'MS_Description' --要添加的属性名称 ,@value = @columnInfo --将要与属性相关联的值 ,@level0type = N'SCHEMA' --用户或用户定义类型 ,@level0name = N'dbo' --指定的 0 级对象类型的名称 ,@level1type = N'TABLE' --1 级对象的类型 ,@level1name = @tableName --指定的 1 级对象类型的名称 ,@level2type = N'COLUMN' --2 级对象的类型 ,@level2name = @columnName --指定的 2 级对象类型的名称 END end GO ---查看表结构说明文档 SELECT TableName = OBJECT_NAME(c.object_id), ColumnsName = c.name, Description = ex.value, ColumnType=t.name, Length=c.max_length FROM sys.columns c LEFT OUTER JOIN sys.extended_properties ex ON ex.major_id = c.object_id AND ex.minor_id = c.column_id AND ex.name = 'MS_Description' left outer join systypes t on c.system_type_id=t.xtype WHERE OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0 AND OBJECT_NAME(c.object_id) ='表名' ---查看所有表说明 select top 1000 ROW_NUMBER() OVER (ORDER BY a.name) AS No, a.name AS 表名, CONVERT(NVARCHAR(100),isnull(g.[value],'-')) AS 说明 from sys.tables a left join sys.extended_properties g on (a.object_id = g.major_id AND g.minor_id = 0)
你的一分支持,是我坚持创作的十分动力。
如果文章的内容对你有帮助的话,请用微信扫描下方二维码,支持一下。谢谢!