SQL SERCER 表字段修改 总结
这两天研究了SQL SERVER的字段修改.有一些心得,写出来为日后参考:
1,删除字段: ALTER TABLE [tablename] DROP COLUMN [fieldname]
删除的时候该字段必须没有被任何外键引用,没有任何约束.
2,删除约束: ALTER TABLE [tablename] DROP CONSTRAINT constraint_name
删除约束是约束名不可加单引号.
3,增加默认值约束: ALTER TABLE [tablename] ADD CONSTRAINT constraint_name DEFAULT 'default_value' FOR [fieldname]
用FOR关键字指定为那个字段增加默认值约束.
4,修改字段: ALTER TABLE [tablename] ALTER COLUMN [fieldname] new_datatype isnull
要更改的列的 new_data_type 应符合下列准则:
A,原来的数据类型必须可以隐式转换为新数据类型。(发现,如果原来的数据类型是text的就再也不能修改数据类型了)
B,new_data_type 类型不能为 timestamp。
C,对 ALTER COLUMN,ANSI 空默认值始终打开;如果没有指定,列将可为空。
D,对 ALTER COLUMN,ANSI 填充始终打开。
E,如果要更改的列是标识列,new_data_type 必须是支持标识属性的数据类型。
F,将忽略SET ARITHABORT的当前设置。ALTER TABLE语句的行为如同ARITHABORT选项为ON时一样。
G,只有列中不包含空值时,ALTER COLUMN 中才可指定 NOT NULL。
将空值更新为非空值:UPDATE [tablename] SET [nullfield] = 'some_value' WHERE [nullfield] IS NULL
5,增加带默认值约束的字段:
ALTER TABLE [tablename] ADD [new_field_name] new_datatype isnull CONSTRAINT constraint_name DEFAULT 'default_value' WITH VALUES
A, 'WITH VALUES' 可以不写,写的话,就用该DEFAULT约束指定的值,填充在所有已有记录新加的字段上,否则使用'NULL'填充在所有已有记录新加的字段上.
B, 添加到表中的新列要么允许空值,要么必须指定默认值。
6,使用sp_rename存储过程修改字段名称:sp_rename @objname = '[tablename].[fieldname]' , @newname = 'newfieldname' ,@objtype = 'COLUMN'
参数objname必须指定为[表名].[欲修改的字段名]这样的形式,要修改字段名的话objtype就必须指定为'COLUMN'.值得注意的是newname这个参数中的字段名不可以使用"[]",但可以在其中使用空格,不过在以后使用这个字段名时要为其加上"[]",如果不小心使用"[]"的话字段名称会被修改成[[newfieldname]]]这样的怪样子的.这个一定要记住了!
相关文档:
说到软解析(soft prase
)和硬解析(
hard prase
),就不能不说一下
Oracle
对
sql
的处理过程。当你发出一条
sql
语句交付
Oracle
,在执行和获取结果前,
Oracle
对此
sql
将进行几个步骤的处理过程:
1、语法检查(
syntax check
)
&nb ......
在我们日常使用SQL Server数据库时,经常遇到需要在实例Instance01中跨实例访问Instance02中的数据。例如在做数据迁移时,如下语句:
insert into Instance01.DB01.dbo.Table01
select * from Instance02.DB01.dbo.Table01
普通情况下,这样做是不允许的,因为SQ ......
SQL Lite
SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.
It is a open source product and can be downloaded from http://www.sqlite.org/ . SQL Lite is best suited in Smart Client architecture, where we can locally store all ......
看到别人在论坛的提问:
一个表的效率问题
今天碰到2张表
1张 有字段
表A有
jtbh(家庭编号) hzxm(户主姓名) hnbh(户内最大编号)
1000 张三 03
1001 赵六..........................
表 ......
1.关于数据库构架体系
①表空间的监控是一个重要的任务,我们必须时刻关心表空间的设置,是否满足现在应
用的需求,以下的语句可以查询到表空间的详细信息。
SQL code
SELECT TABLESPACE_NAME,
INITIAL_EXTENT,
NEXT_EXTENT,
&nb ......