T-sql常用语法

http://www.w3school.com.cn/sql/

1:复制 column1列的内容给column2的语法

update table1
set  
  column2
= column2
go

xxx

2:删除主键约束

--tablename 表名 --PK__EXauditingmaster__300424B4 主键约束名
alter table [tablename] drop CONSTRAINT [PK__EXauditingmaster__300424B4]
go

3:添加主键约束

alter table [tablename] add Constraint PK_name Primary Key (column1name,column2name)
go

1,删除字段: 

ALTER TABLE [tablename] DROP COLUMN [fieldname]

删除的时候该字段必须没有被任何外键引用,没有任何约束.
2,删除约束: ALTER TABLE [tablename] DROP CONSTRAINT constraint_name

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]]]这样的怪样子的.这个一定要记住了!

posted @ 2011-03-03 14:07  infi  阅读(289)  评论(0)    收藏  举报