我可以看到大量关于字段描述扩展属性的位置以及如何获取它的帖子,但没有关于在CREATE TABLE阶段添加这些内容的信息。
我正在动态创建表格,因此动态添加字段描述将是一件很干净的事情,但我看不到办法。
有人设法做到了吗?
答案 0 :(得分:27)
虽然您无法在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)
答案 1 :(得分:4)
我不相信Create Table T-SQL语句支持这一点。但是,如果您通过SSMS定义表,则可以在创建表的同时轻松输入表级和列级注释。
答案 2 :(得分:2)
除了上述内容,您还可以使用SSMS来执行此操作。在SSMS中,右键单击表,选择“属性”,然后单击“扩展属性”(在左窗格中)。在右侧窗格的中间,有一个“属性”框,单击其中为您的描述提供名称和一些文本,如附图
所示答案 3 :(得分:1)
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
您必须为每个描述名称 - 值对重复
希望这有帮助