添加或者更新字段说明

--添加或者更新字段说明
ALTER PROC [dbo].[AddOrUpdateColnumComment]
    (
      @tableName sysname ,
      @colnumName sysname ,
      @comment NVARCHAR(50)
    )
AS ;
    IF EXISTS ( SELECT  *
                FROM    dbo.syscolumns a
                        LEFT JOIN dbo.systypes b ON a.xusertype = b.xusertype
                        INNER JOIN dbo.sysobjects d ON a.id = d.id
                                                       AND d.xtype = 'U'
                                                       AND d.name <> 'dtproperties'
                        LEFT JOIN dbo.syscomments e ON a.cdefault = e.id
                        LEFT JOIN sys.extended_properties g ON a.id = g.major_id
                                                              AND a.colid = g.minor_id
                        LEFT JOIN sys.extended_properties f ON d.id = f.major_id
                                                              AND f.minor_id = 0
                WHERE   d.name = @tableName
                        AND a.name = @colnumName
                        AND g.value IS NOT NULL )
        BEGIN
            EXECUTE sys.sp_updateextendedproperty N'MS_Description', @comment,
                N'SCHEMA', N'dbo', N'TABLE', @tableName, N'COLUMN',
                @colnumName; 
        END;
            
    ELSE
        BEGIN
            EXEC sp_addextendedproperty 'MS_Description', @comment, 'user',
                dbo, 'table', @tableName, 'column', @colnumName;
        END;

转载于:https://www.cnblogs.com/apollokk/p/6713812.html

<think>好的,我现在要解决的问题是用户在MySQL中创建表时如何添加字段说明。首先,我需要回想一下MySQL的CREATE TABLE语法,特别是关于字段注释的部分。 我记得在MySQL中,字段的注释可以通过在列定义后使用COMMENT关键字来添加。例如,在定义字段名和数据类型之后,加上COMMENT '注释内容'。所以基本的语法应该是这样的:在CREATE TABLE语句中,每个字段的定义后面可以跟一个COMMENT子句。 接下来,我需要确认这个语法是否正确,是否有版本限制或者其他需要注意的地方。比如,是否所有MySQL版本都支持这个语法,或者是否需要特定的存储引擎。根据之前的知识,COMMENT关键字在较新的MySQL版本中都是支持的,不过用户可能需要确认他们的MySQL版本是否足够新。此外,注释的内容需要用单引号括起来,并且要放在字段的其他属性之后,比如NOT NULL或者DEFAULT之后。 然后,用户的问题可能还涉及到如何查看已经添加的注释,或者如何修改已有的字段注释。不过当前的问题主要是创建表时添加,所以应该集中在CREATE TABLE的语法上。 为了确保正确性,可能需要参考MySQL的官方文档。例如,CREATE TABLE的语法中,每个列定义的语法是: column_name data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [...] [COMMENT 'string'] 所以,正确的写法应该是在字段定义的末尾加上COMMENT。比如: CREATE TABLE example ( id INT PRIMARY KEY COMMENT '主键ID', name VARCHAR(50) NOT NULL COMMENT '用户姓名' ); 这时候,用户可能还想知道如何为表本身添加注释,或者如何修改注释。不过根据问题,主要关注字段的注释。 另外,用户可能会遇到错误,比如语法错误,这时候需要检查是否遗漏了逗号,或者注释的单引号是否正确闭合。例如,如果用户写成COMMENT '注释,而没有闭合引号,就会报错。 再考虑用户提供的引用内容,比如引用[1]提到的是创建表时的外键错误,这可能和字段定义有关,但当前问题不涉及外键,所以暂时不需要考虑。引用[2]和[3]是关于ALTER TABLE添加列的,可能用户之后会问到如何修改已有字段的注释,但当前问题还是创建表时的注释添加。引用[4]是关于数据操作的,可能和INSERT相关,但和当前问题关联不大。 最后,用户可能需要示例来更好地理解,所以给出一个具体的例子会更好。同时,提醒用户注释在数据库设计中的重要性,比如方便维护和理解字段用途。 总结,回答应该包括: 1. 使用COMMENT关键字在CREATE TABLE语句中添加字段注释。 2. 提供具体的SQL示例。 3. 注意事项,比如单引号的使用和位置。 4. 如何查看注释的方法(比如使用SHOW CREATE TABLE或查询information_schema)。 5. 可能的相关问题,如修改注释或表注释。</think>在MySQL中创建表时,可以通过`COMMENT`关键字为字段添加说明。以下是具体实现方法及注意事项: ### 步骤说明 1. **基本语法** 在`CREATE TABLE`语句中,每个字段定义后使用`COMMENT '注释内容'`,例如: ```sql CREATE TABLE employees ( id INT PRIMARY KEY COMMENT '员工唯一标识符', name VARCHAR(100) NOT NULL COMMENT '员工姓名', salary DECIMAL(10,2) COMMENT '月薪(含税)' ); ``` 2. **查看注释** 通过以下方式验证注释是否生效: - 执行`SHOW CREATE TABLE employees;`,注释会显示在字段定义中[^2]。 - 查询元数据表: ```sql SELECT column_name, column_comment FROM information_schema.columns WHERE table_name = 'employees'; ``` ### 注意事项 - 注释内容需用**单引号包裹**,且长度限制为`1024`字符。 - `COMMENT`应放在字段定义的**最后**,其他属性(如`NOT NULL`、`DEFAULT`)之后。 - 若需修改注释,需使用`ALTER TABLE`语句: ```sql ALTER TABLE employees MODIFY COLUMN salary DECIMAL(10,2) COMMENT '税前月薪'; ``` ### 完整示例 ```sql CREATE TABLE products ( product_id INT AUTO_INCREMENT COMMENT '商品ID(自增主键)', name VARCHAR(200) NOT NULL COMMENT '商品名称', price DECIMAL(12,2) DEFAULT 0.00 COMMENT '零售单价', stock INT UNSIGNED COMMENT '当前库存量', PRIMARY KEY (product_id) ) COMMENT='商品基本信息表'; ``` ### 相关工具建议 - 使用`MySQL Workbench`的可视化界面直接编辑字段注释。 - 通过`mysqldump`导出表结构时,注释会保留在SQL文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值