SQL Server - 你可以在 CREATE TABLE 中添加字段描述吗?

Posted

技术标签:

【中文标题】SQL Server - 你可以在 CREATE TABLE 中添加字段描述吗?【英文标题】:SQL Server - Can you add field descriptions in CREATE TABLE? 【发布时间】:2010-12-31 09:53:23 【问题描述】:

我可以看到很多关于字段描述扩展属性的位置以及如何获取它的帖子,但没有关于在 CREATE TABLE 阶段添加这些内容的帖子。

我正在动态创建表格,因此动态添加字段描述将是一件整洁的事情,但我看不到方法。

有人能做到吗?

【问题讨论】:

【参考方案1】:

虽然您无法在 CREATE TABLE 中执行此操作,但您可以在同一数据库脚本中使用 this approach 同时执行此操作:

CREATE table T1 (id int , name char (20))

EXEC   sp_addextendedproperty 'MS_Description', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id

EXEC   sp_addextendedproperty 'MS_Description', 'Employee Name', 'user', dbo, 'table', 'T1', 'column', name

然后您可以使用以下命令查看您的条目:

SELECT   *
FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', 'T1', 'column', default)

【讨论】:

这对我有用,但我必须将@level0Type 属性调整为schema,即:EXEC sp_addextendedproperty 'MS_Description', 'Employee ID', 'schema', dbo, 'table', 'T1', 'column', id;【参考方案2】:

我不相信 Create Table T-SQL 语句支持这一点。但是,如果您通过 SSMS 定义表,则可以在创建表的同时轻松输入表级和列级 cmets。

【讨论】:

嗨,感谢您的回复,我知道我在这里抓着稻草,我可以通过 SSMS 执行您所说的操作,但我正在以编程方式动态创建一个表格。我在许多其他例程上构建了我的 CREATE TABLE 命令,我只是想知道我是否可以在途中加入一两条有用的评论。我有点希望有人找到一种方法或解决方法来做到这一点。谢谢 如果您以编程方式动态创建表,为什么不也以编程方式添加评论扩展属性?【参考方案3】:

SQL Server 提供了一个系统存储过程,允许您添加描述,一次添加一个名称-值对

示例如下:

EXEC sys.sp_addextendedproperty 
@name=N'Column 2 Description' -- Give your description a name
   , @value=N'blah blah 2 for a specific column' -- Actual description
   , @level0type=N'SCHEMA'
   , @level0name=N'dbo'
   , @level1type=N'TABLE'
   , @level1name=N'MyTestTable' -- Name of your table
GO

您必须为每个描述名称-值对重复

希望对你有帮助

【讨论】:

【参考方案4】:

除了上述之外,你还可以使用 SSMS 来做。在 SSMS 中,右键单击表,选择属性,然后单击“扩展属性”(在左侧窗格中)。在右侧窗格的中间,有一个“属性”框,点击这里给你的描述起一个名字,还有一些文字,如附图所示

【讨论】:

以上是关于SQL Server - 你可以在 CREATE TABLE 中添加字段描述吗?的主要内容,如果未能解决你的问题,请参考以下文章

Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?

我建立的sql列表出现'CREATE VIEW' 必须是查询批次中的第一个语句。

SQL server 种JOIN后的语句无法别名

python能创建sql server数据库,执行create database语句吗?

如何在 SQL Server 中使用 Create 语句创建临时表?

SQL Server CREATE语句