当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

<b>SQL Server数据库技术(43)</b>[MSSQL防范]

赞助商链接



  本文“<b>SQL Server数据库技术(43)</b>[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

当表成立好后,大概按照需求要对表的列、约束等属性举行增添、删除或改正,这就需求改正表构造.

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'.
  以上是“<b>SQL Server数据库技术(43)</b>[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .