CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

用代码怎么修改字段名称?

楼主CoolCHEN(☆晓风☆)2002-02-24 22:57:39 在 Web 开发 / ASP 提问

SQL语句 问题点数:20、回复次数:4Top

1 楼neweb(永不言败)回复于 2002-02-25 01:03:25 得分 15

示例  
  A.   更改表以添加新列  
  下例添加一个允许空值的列,而且没有通过   DEFAULT   定义提供值。各行的新列中的值将为   NULL。  
   
  CREATE   TABLE   doc_exa   (   column_a   INT)    
  GO  
  ALTER   TABLE   doc_exa   ADD   column_b   VARCHAR(20)   NULL  
  GO  
  EXEC   sp_help   doc_exa  
  GO  
  DROP   TABLE   doc_exa  
  GO  
   
  B.   更改表以除去列  
  下例修改表以删除一列。  
   
  CREATE   TABLE   doc_exb   (   column_a   INT,   column_b   VARCHAR(20)   NULL)    
  GO  
  ALTER   TABLE   doc_exb   DROP   COLUMN   column_b  
  GO  
  EXEC   sp_help   doc_exb  
  GO  
  DROP   TABLE   doc_exb  
  GO  
   
  C.   更改表以添加具有约束的列  
  下例向表中添加具有   UNIQUE   约束的新列。    
   
  CREATE   TABLE   doc_exc   (   column_a   INT)    
  GO  
  ALTER   TABLE   doc_exc   ADD   column_b   VARCHAR(20)   NULL    
        CONSTRAINT   exb_unique   UNIQUE  
  GO  
  EXEC   sp_help   doc_exc  
  GO  
  DROP   TABLE   doc_exc  
  GO  
   
  D.   更改表以添加未验证的约束  
  下例向表中的现有列上添加约束。该列中存在一个违反约束的值;因此,利用   WITH   NOCHECK   来防止对现有行验证约束,从而允许该约束的添加。  
   
  CREATE   TABLE   doc_exd   (   column_a   INT)    
  GO  
  INSERT   INTO   doc_exd   VALUES   (-1)  
  GO  
  ALTER   TABLE   doc_exd   WITH   NOCHECK    
  ADD   CONSTRAINT   exd_check   CHECK   (column_a   >   1)  
  GO  
  EXEC   sp_help   doc_exd  
  GO  
  DROP   TABLE   doc_exd  
  GO  
   
  E.   更改表以添加多个带有约束的列  
  下例向表中添加多个带有约束的新列。第一个新列具有   IDENTITY   属性;表中每一行的标识列都将具有递增的新值。  
   
  CREATE   TABLE   doc_exe   (   column_a   INT   CONSTRAINT   column_a_un   UNIQUE)    
  GO  
  ALTER   TABLE   doc_exe   ADD    
   
  /*   Add   a   PRIMARY   KEY   identity   column.   */    
  column_b   INT   IDENTITY  
  CONSTRAINT   column_b_pk   PRIMARY   KEY,    
   
  /*   Add   a   column   referencing   another   column   in   the   same   table.   */    
  column_c   INT   NULL      
  CONSTRAINT   column_c_fk    
  REFERENCES   doc_exe(column_a),  
   
  /*   Add   a   column   with   a   constraint   to   enforce   that       */    
  /*   nonnull   data   is   in   a   valid   phone   number   format.     */  
  column_d   VARCHAR(16)   NULL    
  CONSTRAINT   column_d_chk  
  CHECK    
  (column_d   IS   NULL   OR    
  column_d   LIKE   "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"   OR  
  column_d   LIKE  
  "([0-9][0-9][0-9])   [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"),  
   
  /*   Add   a   nonnull   column   with   a   default.     */    
  column_e   DECIMAL(3,3)  
  CONSTRAINT   column_e_default  
  DEFAULT   .081  
  GO  
  EXEC   sp_help   doc_exe  
  GO  
  DROP   TABLE   doc_exe  
  GO  
   
  F.   添加具有默认值的可为空的列  
  下例添加可为空的、具有   DEFAULT   定义的列,并使用   WITH   VALUES   为表中的各现有行提供值。如果没有使用   WITH   VALUES,那么每一行的新列中都将具有   NULL   值。  
   
  ALTER   TABLE   MyTable    
  ADD   AddDate   smalldatetime   NULL  
  CONSTRAINT   AddDateDflt  
  DEFAULT   getdate()   WITH   VALUES  
   
  G.   禁用并重新启用一个约束  
  下例禁用用于限制可接受的薪水数据的约束。WITH   NOCHECK   CONSTRAINT   与   ALTER   TABLE   一起使用,以禁用该约束并使正常情况下会引起约束违规的插入操作得以执行。WITH   CHECK   CONSTRAINT   重新启用该约束。  
   
  CREATE   TABLE   cnst_example    
  (id   INT   NOT   NULL,  
    name   VARCHAR(10)   NOT   NULL,  
    salary   MONEY   NOT   NULL  
          CONSTRAINT   salary_cap   CHECK   (salary   <   100000)  
  )  
   
  --   Valid   inserts  
  INSERT   INTO   cnst_example   VALUES   (1,"Joe   Brown",65000)  
  INSERT   INTO   cnst_example   VALUES   (2,"Mary   Smith",75000)  
   
  --   This   insert   violates   the   constraint.  
  INSERT   INTO   cnst_example   VALUES   (3,"Pat   Jones",105000)  
   
  --   Disable   the   constraint   and   try   again.  
  ALTER   TABLE   cnst_example   NOCHECK   CONSTRAINT   salary_cap  
  INSERT   INTO   cnst_example   VALUES   (3,"Pat   Jones",105000)  
   
  --   Reenable   the   constraint   and   try   another   insert,   will   fail.  
  ALTER   TABLE   cnst_example   CHECK   CONSTRAINT   salary_cap  
  INSERT   INTO   cnst_example   VALUES   (4,"Eric   James",110000)  
   
  H.   禁用并重新启用触发器  
  下例使用   ALTER   TABLE   的   DISABLE   TRIGGER   选项来禁用触发器,以使正常情况下会违反触发器条件的插入操作得以执行。然后下例使用   ENABLE   TRIGGER   重新启用触发器。  
   
  CREATE   TABLE   trig_example    
  (id   INT,    
  name   VARCHAR(10),  
  salary   MONEY)  
  go  
  --   Create   the   trigger.  
  CREATE   TRIGGER   trig1   ON   trig_example   FOR   INSERT  
  as    
  IF   (SELECT   COUNT(*)   FROM   INSERTED  
  WHERE   salary   >   100000)   >   0  
  BEGIN  
  print   "TRIG1   Error:   you   attempted   to   insert   a   salary   >   $100,000"  
  ROLLBACK   TRANSACTION  
  END  
  GO  
  --   Attempt   an   insert   that   violates   the   trigger.  
  INSERT   INTO   trig_example   VALUES   (1,"Pat   Smith",100001)  
  GO  
  --   Disable   the   trigger.  
  ALTER   TABLE   trig_example   DISABLE   TRIGGER   trig1  
  GO  
  --   Attempt   an   insert   that   would   normally   violate   the   trigger  
  INSERT   INTO   trig_example   VALUES   (2,"Chuck   Jones",100001)  
  GO  
  --   Re-enable   the   trigger.  
  ALTER   TABLE   trig_example   ENABLE   TRIGGER   trig1  
  GO  
  --   Attempt   an   insert   that   violates   the   trigger.  
  INSERT   INTO   trig_example   VALUES   (3,"Mary   Booth",100001)  
  GO  
   
  Top

2 楼neweb(永不言败)回复于 2002-02-25 01:16:20 得分 0

不好意思,上面贴错了,看下面:  
   
  把   authors   的   phones   字段改名为   phone  
   
  BEGIN   TRANSACTION  
  SET   QUOTED_IDENTIFIER   ON  
  SET   TRANSACTION   ISOLATION   LEVEL   SERIALIZABLE  
  SET   ARITHABORT   ON  
  SET   NUMERIC_ROUNDABORT   OFF  
  SET   CONCAT_NULL_YIELDS_NULL   ON  
  SET   ANSI_NULLS   ON  
  SET   ANSI_PADDING   ON  
  SET   ANSI_WARNINGS   ON  
  COMMIT  
  BEGIN   TRANSACTION  
  EXECUTE   sp_rename   N'dbo.authors.phones',   N'Tmp_phone_1',   'COLUMN'  
  GO  
  EXECUTE   sp_rename   N'dbo.authors.Tmp_phone_1',   N'phone',   'COLUMN'  
  GO  
  COMMITTop

3 楼beyond_xiruo(CorruptionException)回复于 2002-02-25 07:58:52 得分 5

alter   table   tablename   change   oldname   newnameTop

4 楼111222(www.111222.cn)回复于 2002-02-26 15:30:39 得分 0

upTop

相关问题

  • 如何用代码修改字段名啊?
  • 请问怎么修改mysql的字段名称和类型?
  • 如何修改字段名
  • 请问VB中能否用代码修改Access数据库中的字段名,如果能,怎样修改?
  • 怎么样修改一个ORACLE数据库表单中的字段名????
  • 各位,修改表中某一字段名称的SQL语句怎么写啊?
  • 修改表中某一字段名称的SQL语句怎么写啊?
  • 修改表中某一字段名称的SQL语句怎么写啊
  • 各位,修改表中某一字段名称的SQL语句怎么写啊
  • 如何用sql修改字段名称?

关键词

  • 约束
  • trig
  • goalter
  • 添加
  • column
  • doc
  • onset
  • exd
  • constraint
  • 值

得分解答快速导航

  • 帖主:CoolCHEN
  • neweb
  • beyond_xiruo

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo