sql server SELECT 如何查询出字段注释
时间: 2024-09-20 16:10:55 浏览: 54
在SQL Server中,直接获取表字段的注释信息并不是直接可用的内置功能,因为数据库元数据通常是不公开的,除非有特定的系统视图或者存储过程可以访问。然而,你可以通过执行特定的T-SQL命令或者使用第三方工具来获取这个信息。
一种常见的方法是查看数据库系统的`syscomments`系统视图,它包含了对数据库对象的描述,包括列注释。但是这需要适当的权限,并且不是所有版本的SQL Server都支持这种方法,因为该视图可能会有所变化。
下面是一个示例查询,假设我们有一个名为`sys.columns`的视图:
```sql
SELECT
object_name(object_id) AS TableName,
name AS ColumnName,
c.text AS Comment
FROM
sys.columns c
JOIN
sys.objects o ON c.object_id = o.object_id
WHERE
c.is_ms_shipped = 0 -- 表示用户自定义的对象,不包括系统表
AND c.is_identity = 0
AND o.type IN ('U') -- 'U'代表用户表
AND c.column_id = OBJECTPROPERTY(c.object_id, 'ColumnDisplayOrder') -- 获取默认列顺序的列
```
这个查询会返回表名、列名以及列的注释。请注意,实际执行时可能需要根据你的环境和需求调整。
相关问题
sqlserver 查询字段注释
在 SQL Server 中,要查询字段注释可以使用以下 SQL 语句:
```sql
SELECT
c.name AS column_name,
ep.value AS column_comment
FROM
sys.columns c
LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id AND ep.name = 'MS_Description'
INNER JOIN sys.tables t ON c.object_id = t.object_id
WHERE
t.name = 'your_table_name' AND SCHEMA_NAME(t.schema_id) = 'your_schema_name';
```
其中,`your_table_name` 和 `your_schema_name` 需要替换为实际的表名和架构名。此外,需要保证当前用户有查询系统表的权限。
SQLSERVER添加字段注释
在SQL Server中添加字段注释可以使用以下语法:
```sql
--添加注释
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'字段注释内容',
@level0type = N'SCHEMA',
@level0name = N'dbo',
@level1type = N'TABLE',
@level1name = N'表名',
@level2type = N'COLUMN',
@level2name = N'字段名';
--查询注释
SELECT objname AS 表名,
name AS 字段名,
value AS 注释内容
FROM fn_listextendedproperty('MS_Description', 'SCHEMA', 'dbo', 'TABLE', '表名', 'COLUMN', '字段名');
```
其中,`sp_addextendedproperty`是SQL Server中的系统存储过程,用于添加扩展属性。`@name`参数表示属性名称,这里使用`MS_Description`表示字段注释;`@value`参数表示属性值,即字段注释内容;`@level0type`、`@level0name`、`@level1type`、`@level1name`、`@level2type`、`@level2name`参数表示属性的层次结构,这里表示在`dbo`模式下的`表名`表的`字段名`字段上添加注释。
查询注释可以使用`fn_listextendedproperty`函数,该函数返回指定扩展属性的值。参数依次为属性名称、层次结构类型、模式名称、表类型、表名称、列类型、列名称。
阅读全文