• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
SQL
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
SQL Server数据库技术(46)
软件发布 SQL Server数据库技术(46)
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 数据库类 >> SQL Server >> SQL Server数据库技术(46)

SQL Server数据库技术(46)

添加时间: 2006-4-20 4:17:53  作者: SQL Server教程  阅读次数:54   来源: http://www.d9soft.com

       

当表创建好后,可能根据需要要对表的列、约束等属性进行添加、删除或修改,这就需要修改表结构。

7.4.1 用Enterprise Manager 修改
在Enterprise Manager 中选择要进行改动的表,单击右键,从快捷菜单中选择“DesignTable”选项,则会出现如图7-4 所示的修改表结构对话框。可以在图7-4 所示的对话框中修改列的数据类型、名称等属性或添加、删除列,也可以指定表的主关键字约束。单击工具栏中的图标,出现如图7-5 所示的编辑表和约束的属性的对话框。可以在其中编辑各种约束和一些表的属性。



7.4.2 用ALTER TABLE 命令修改
ALTER TABLE 命令可以添加或删除表的列、约束,也可以禁用或启用已存在的约束
或触发器。其语法如下:
ALTER TABLE table
{ [ALTER COLUMN column_name
{ new_data_type [ (precision[, scale] ) ]
[ COLLATE < collation_name > ]
[ NULL NOT NULL ]
{ADD DROP} ROWGUIDCOL } ]
ADD
{ [ ]
column_name AS computed_column_expression
}[,...n]
[WITH CHECK WITH NOCHECK] ADD
{ }[,...n]
DROP
{ [CONSTRAINT] constraint_name
COLUMN column
}[,...n]
{CHECK NOCHECK} CONSTRAINT
{ALL constraint_name[,...n]}
{ENABLE DISABLE} TRIGGER
{ALL trigger_name[,...n]}
}
::= { column_name data_type }
[ [ DEFAULT constant_expression ]
[ IDENTITY [(seed, increment ) [NOT FOR REPLICATION] ] ]
]
[ ROWGUIDCOL ]
[ COLLATE < collation_name > ]
[ ] [ ...n]
::= [CONSTRAINT constraint_name]
{ [ NULL NOT NULL ]
[ { PRIMARY KEY UNIQUE }
[CLUSTERED NONCLUSTERED]
[WITH FILLFACTOR = fillfactor]
[ON {filegroup DEFAULT} ] ] ]
[ [FOREIGN KEY]
REFERENCES ref_table [(ref_column) ]
[ ON DELETE { CASCADE NO ACTION } ]
[ ON UPDATE { CASCADE NO ACTION } ]
[NOT FOR REPLICATION ] ]
CHECK [NOT FOR REPLICATION]
(logical_expression)}
::= [CONSTRAINT constraint_name]
{ [ { PRIMARY KEY UNIQUE }
[ CLUSTERED NONCLUSTERED]
{ ( column [ ASC DESC ] [,...n] ) }
[ WITH FILLFACTOR = fillfactor]
[ON {filegroup DEFAULT} ] ]
FOREIGN KEY
[(column[,...n])]
REFERENCES ref_table [(ref_column[,...n])]
[NOT FOR REPLICATION]
[ ON DELETE { CASCADE NO ACTION } ]
[ ON UPDATE { CASCADE NO ACTION } ]
CHECK [NOT FOR REPLICATION]
(search_conditions)}
各参数说明如下:

  • table
    指定要修改的表的名称。如果表不在当前数据库中或表不属于当前的用户,就必须指明其所属的数据库名称和所有者名称。
  • ALTER COLUMN
  • new_data_type
    指定新的数据类型名称,其使用标准如下:
    列的原数据类型应可以转换为新的数据类型;
    新的数据类型不能为TIMESTAMP;
    新的数据类型允许列为NULL 值;
    如果原来的列是IDENTITY 列,则新的数据类型应支持IDENTITY 特性;
    当前的SET ARITHABORT 设置将被视为处于ON 状态。
  • precision
    指定新数据类型的位数。
  • scale
    指定新数据类型的小数位数。
  • NULL NOT NULL
    指明列是否允许NULL 值。如果添加列到表中时,指定它为NOT NULL, 则必须指定此列的缺省值。选择此项后,new_data_type [(precision [, scale ])]选项就必须指定,即使precision 和scale 选项均不变,当前的数据类型也需要指出来。
  • WITH CHECK WITH NOCHECK
    指定已经存在于表中的数据是否需要使用新添加的或刚启用的FOREIGN KEY 约束或CHECK 约束来验证。如果不指定,WITH CHECK 作为新添加约束的缺省选项,WITH NOCHECK 作为启用旧约束的缺省选项。
  • {ADD DROP} ROWGUIDCOL
    添加或删除列的ROWGUIDCOL 属性。ROWGUIDCOL 属性只能指定给一个 UNIQUEIDENTIFIER 列。
  • ADD
    添加一个或多个列、计算列或表约束的定义。
  • computed_column_expression
    计算列的计算表达式。
  • DROP { [CONSTRAINT] constraint_name COLUMN column_name }
    指定要删除的约束或列的名称。处于下列情况的列不能删除;
    用于复制的列;
    用于索引的列;
    用于CHECK FOREIGN KEY UNIQUE 或PRIMARY KEY 约束的列;
    定义了缺省约束或绑定了一个缺省值对象的列;
    绑定了规则(Rule)的列。
  • { CHECK NOCHECK} CONSTRAINT
    启用或禁用FOREIGN KEY 或CHECK 约束。
  • ALL
    使用NOCHECK 选项禁用所有的约束,或使用CHECK 选项启用所有的约束。
  • {ENABLE DISABLE} TRIGGER
    启用或禁用触发器。
  • ALL
    启用或禁用选项针对所有的触发器。
  • trigger_name
    指定触发器名称。
其它参数与创建表和约束中所讲的相同。
例7-13: 创建一个定货商信息表,然后修改简介列的数据类型。
create table order_firm (
order_firm_id char (8) primary key,
firm_name varchar (50) not null
firm_introduce char(50) null
) on [primary]
alter table order_firm
alter column firm_introduce varchar(250) null
例7-14: 创建一个定货表再插入一个定货商编号列。
create table orders(
order_id char(8) ,
p_id char(8) foreign key references products(p_id),
order_quantity smallint check (order_quantity>=10),
constraint pk_order_id primary key (order_id),
) on [primary]
alter table orders
add order_firm_id char(8) null
constraint fk_order_firm_id foreign key references order_firm(order_firm_id)
例7-15: 更改上例中的检查约束,并删除一个外关键字约束。
alter table orders
add constraint chk_order_quantity check (order_quantity>=100)
drop constraint chk_order_quantity

7.4.3 用存储过程Sp_rename 修改表名和列名
Sp_rename 存储过程可以修改当前数据库中用户对象的名称,如表、列、索引、存储过程等。其语法如下:
sp_rename [@objname =] 'object_name',
[@newname =] 'new_name'
[, [@objtype =] 'object_type']
其中[@objtype =] 'object_type'是要改名的对象的类型,其值可以为‘COLUMN’、‘DATABASE’、‘INDEX’、‘USERDATATYPE’、‘OBJECT’。值‘OBJECT’指代了系统表sysobjects 中的所有对象,如表、视图、存储过程、触发器、规则、约束等。‘OBJECT’值为默认值。

例7-16:更改orders 表的列p_id 名称为products_id
exec sp_rename 'orders.[p_id]', 'product_id', 'column'
运行结果如下:
Caution: Changing any part of an object name could break scripts and stored procedures.
The column was renamed to 'product_id'.

例7-17: 更改orders 表的名称为p_orders。
exec sp_rename 'orders', 'p_orders''
运行结果如下:
Caution: Changing any part of an object name could break scripts and stored procedures.
The object was renamed to 'p_orders'.

 

上下文章:

 

上一篇文章: SQL Server数据库技术(45) 下一篇文章: SQL Server数据库技术(47)

相关文章:

  • 针对微软Server安全漏洞 蠕虫病毒开始流行
  • 见证浩辰二次开发技术新变革
  • Web2.0专家:经济大萧条对互联网技术的影响
  • Windows Server 2008 R2发布
  • 赛门铁克将推新安全技术 准确查出恶意软件

相关软件:

  • FileZilla Server V0.9.28
  • Http File Server 2.3 Build 209 Beta
  • 腾讯QQ IP数据库 1015 纯真版
  • 缪斯邮件服务器(MuseMail Server) V3.72
  • Serv-U FTP Server 7.3.0.2
  • Bopup Communication Server 3.2.14.4808

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

数据库类分类导航

  • SQL Server
  • MySQL Server
  • DB2
  • Oracle
  • ACCESS
  • Foxpro
  • PowerBuilder
  • Sybase

本类经典文章推荐

  • 选择SQL Server恢复模型确保正确备...
  • 为SQL Server Authentication配置...
  • 最简便的备份MySql数据库方法
  • 精通数据库系列之入门-基础篇
  • 精通数据库系列之入门-基础篇2
  • 精通数据库系列之入门-基础篇3
  • 精通数据库系列之入门-技巧篇1
  • 精通数据库系列之入门-技巧篇2
  • 精通数据库系列之入门-技巧篇3
  • 精通数据库系列之入门-技巧篇4

SQL Server阅读排行

  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 精通数据库系列之入门-基础篇2
  • 精通数据库系列之入门-技巧篇1
  • SQL SERVER应用问题解答13例(一)
  • SQL Server数据库技术(99)
  • 精通数据库系列之入门-基础篇3
  • SQL Server数据库技术(101)

数据库类阅读总排行

  • MySQL中的SQL-- TEXT、DATE、和SE...
  • MYSQL初学者使用指南 上篇
  • 怎样在vc、delphi中使用mysql(mys...
  • MySQL数据导入与导出之二
  • MYSQL初学者使用指南 下篇
  • SQL Server数据库技术(96)
  • SQL Server数据库技术(98)
  • SQL Server数据库技术(60)
  • 精通数据库系列之入门-基础篇
  • 如何为用户设置密码(MYSQL)

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有