SQL SERVER
为既有表添加列
1. ALTER TABLE table_name
2. ADD { column_name data_type } NULL
修改列定义
1. ALTER TABLE table_name
2. ALTER COLUMN column_name
3. [type_name] [NULL | NOT NULL] [COLLATE collation_name]
删除表中的列
1. ALTER TABLE table_name
2. DROP COLUMN column_name
为既有表增加主键约束
1. ALTER TABLE Person.EducationType
2. ADD CONSTRAINT PK_EducationType
3. PRIMARY KEY (EducationTypeID)
为既有表增加外键
1. ALTER TABLE table_name
2. ADD CONSTRAINT constraint_name
3. FOREIGN KEY (column_name)
4. REFERENCES [ schema_name.] referenced_table_name [ ( ref_column ) ]
允许外键的级联修改
1. [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
2. [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]
3. [ NOT FOR REPLICATION ]
从表删除约束
1. ALTER TABLE table_name
2. DROP CONSTRAINT constraint_name
要找到表的约束名,可以使用sp_help系统存储过程。
1. EXEC sp_help [ [ @objname = ] ' name ' ]
使用DBCC CHECKIDENT来查看和纠正IDENTITY种子值
1. DBCC CHECKIDENT
2. ( 'table_name' [ , {NORESEED | { RESEED [ , new_reseed_value ] }}])
3. [ WITH NO_INFOMSGS ]
表4-10 CHECKIDENT参数
参数
描述
table_name
这个参数表示要对其IDENTITY
值进行检查的表名
NORESEED | RESEED
NORESEED代表仅仅是汇报当前最
大的标识值。RESEED指定当前的
IDENTITY应该为什么值
new_reseed_value
这个参数指定新的当前的IDENTITY值
WITH NO_INFOMSGS
如果在命令中包含WITH NO_INFOMSGS,
则它禁止DBCC输出信息性消息
禁止和启用约束
1. -- 禁用所有约束的检查
2. ALTER TABLE table_name
3. NOCHECK CONSTRAINT ALL
4. -- 启用所有约束的检查
5. ALTER TABLE table_name
6. CHECK CONSTRAINT ALL
1. -- 禁用某个约束的检查
2. ALTER TABLE table_name
3. NOCHECK CONSTRAINT CONSTRAINT_name
4. -- 启用某个约束的检查
5. ALTER TABLE table_name
6. CHECK CONSTRAINT CONSTRAINT_name
ORACLE
禁用约束,使用ALTER语句
ALTER TABLE table_name DISABLE CONSTRAINT constraint_name;
重新启用约束:
ALTER TABLE policies ENABLE CONSTRAINT chk_gender
删除约束
ALTER TABLE table_name DROP CONSTRAINT constraint_name