是否可以在 Microsoft SQL 2000+ 中的表中添加描述/注释
Posted
技术标签:
【中文标题】是否可以在 Microsoft SQL 2000+ 中的表中添加描述/注释【英文标题】:Is it possible to add a description/comment to a table in Microsoft SQL 2000+ 【发布时间】:2010-09-27 13:56:18 【问题描述】:是否可以在 Microsoft SQL 2000 及更高版本的表中添加类似“元数据”的描述或 cmets?
您将如何通过 CREATE TABLE 语句执行此操作?
是否可以在字段中添加描述或评论?
如何在 MSSQL 2000 中查询这些信息? 2005 年?
【问题讨论】:
【参考方案1】:使用扩展属性。例如,要将扩展属性添加到 dbo 模式中的表,您可以使用:
EXEC sys.sp_addextendedproperty @name=N'<NameOfProp>',
@value=N'<Value>' , @level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'<Table>'
您可以更新它们:
EXEC sys.sp_updateextendedproperty
@name=N'MS_Description', @value=N'My Description' ,
@level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE'
,@level1name=N'<YOUR TABLE NAME>'
您可以像这样阅读它们:
SELECT *
FROM fn_listextendedproperty (NULL, 'schema','dbo', 'table', '<yourtable>', default, default);
或
SELECT
p.name AS [Name],p.value
FROM
sys.tables AS tbl
INNER JOIN sys.extended_properties AS p ON p.major_id=tbl.object_id AND p.minor_id=0 AND p.class=1
WHERE
(tbl.name=N'<yourtablename>' and SCHEMA_NAME(tbl.schema_id)=N'dbo')
ORDER BY
[Name] ASC
【讨论】:
是的,但您最好不要看这些东西,而是使用一个可以让您读写 cmets 的应用程序。您也可以通过 Sql Mgmt Studio 添加它们。 您最好将表格的描述写在纸质笔记本上,而不是在每次对表格的用途有疑问时依靠纯粹的记忆来回忆那个复杂的查询。或者只是依赖 SSMS 的对象资源管理器。 @alejandrob 我个人同意 100%...虽然我不确定用户界面是如何在 SQL 2000 中构建的,正如 opp 最初询问的那样......【参考方案2】:您当然可以使用上面提到的 SP 来执行此操作,但是,有一种更简单的方法可以执行此操作,我相信 MGT Studio 应该是您进行这些更改的首选,除非您尝试使用脚本自动化操作。这是如何做到的:
1- 右键单击表格
2- 点击设计
3- 注释如上图
只是为了让你有一个完整的答案,这里有一个更简单的脚本来改变它(与上面的答案相比更简单):
DECLARE @v sql_variant
SET @v = N'Comment here'
EXECUTE sp_addextendedproperty N'MS_Description', @v, N'SCHEMA', N'dbo', N'TABLE', N'Stack_testing', N'COLUMN', N'testinghere'
【讨论】:
【参考方案3】:大多数工具和人们使用扩展属性来支持这一点。 SSMS 使用的通用名称是 MS_Description
有几个内置的存储过程用于创建和读取这些属性,它们会随着时间的推移而变化,因此 SQL 版本之间会存在兼容性差异。
【讨论】:
【参考方案4】:不幸的是,这种方法不适用于高负载的生产环境。操作扩展属性的存储过程在目标表上设置排他锁。当它们被执行时,整个表是不可读的。
【讨论】:
以上是关于是否可以在 Microsoft SQL 2000+ 中的表中添加描述/注释的主要内容,如果未能解决你的问题,请参考以下文章
如何在Microsoft SQL Server 2000里创建数据库
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid parameter binding(s)
如何在Microsoft SQL Server 2000数据库下的查询分析器中查看数据库的版本,请用命