数据库更新Sql脚本总结
1. INSERT INTO SELECT语句
语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。
示例如下:
--创建测试表 create TABLE Users1 ( UserID int identity (1,1) primary key not null, UserName varchar(10), UserAddress varchar(20) ) GO create TABLE Users2 ( ID int identity (1,1) primary key not null, Name varchar(10), Address varchar(20) ) GO --创建测试数据 Insert into Users1 values('赵','asds') Insert into Users1 values('钱','asds') Insert into Users1 values('孙','asds') Insert into Users1 values('李','asds') GO select * from Users2 --INSERT INTO SELECT语句复制表数据 Insert into Users2(Name,Address) select UserName,UserAddress from Users1 GO --显示更新后的结果 select * from Users2 GO --删除测试表 drop TABLE Users1 drop TABLE Users2
2. SELECT INTO FROM语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2
示例如下:
--创建测试表 create TABLE Users1 ( UserID int identity (1,1) primary key not null, UserName varchar(10), UserAddress varchar(20) ) GO --创建测试数据 Insert into Users1 values('赵','asds') Insert into Users1 values('钱','asds') Insert into Users1 values('孙','asds') Insert into Users1 values('李','asds') GO --SELECT INTO FROM语句创建表Users2并复制数据 select UserName,UserAddress INTO Users2 from Users1 GO --显示更新前后的结果 select * from Users1 select * from Users2 GO --删除测试表 drop TABLE Users1 drop TABLE Users2
表更改:
3.ALTER TABLE 语句
ALTER TABLE 语句用于在已有的表中添加、修改或删除列。
语句形式为:
在表中添加列 : ALTER TABLE table_name ADD column_name datatype 删除表中的列 ALTER TABLE table_name DROP COLUMN column_name 改变表中列的数据类型 ALTER TABLE table_name ALTER COLUMN column_name datatype
示例如下:
--创建测试表 create TABLE Users ( UserID int identity (1,1) primary key not null, UserName varchar(10), UserAddress varchar(20) ) GO --在Users表中添加一个名为 "Birthday" 的新列 数据类型为datetime ALTER TABLE Users ADD Birthday datetime GO --在Users表中把 "Birthday" 列的数据类型改为nvarchar(20) ALTER TABLE Users ALTER COLUMN Birthday nvarchar(20) GO --删除 "Person" 表中的 "Birthday" 列: ALTER TABLE Users DROP COLUMN Birthday GO --删除测试表 drop TABLE Users
使用Sp_rename 存储过程[SQLCE不支持]
Sp_rename 存储过程可以修改当前数据库中用户对象的名称,如表、列、索引、存储过程等待。但在SqlCe下面测试只能改表名
语法如下:
Sp_rename[@objname=]'object_name',
[@newname=]'new_name'
[,[@objtype=]'object_type']
其中[@objtype=]'object_type'是要改名的对象的类型,其值可以为
'Column' 列
'Database' 数据库
'Index' 索引
'Userdatatype'用户自定义类型
'Object' 对象
值'Object'指代了系统表sysobjects中所有对象,如表、视图、存储过程、触发器、规则、约束等。'object'值为默认值。
示例如下:
例1:更改orders表的列p_id 名称为 products_id exec sp_rename 'orders.[p_id]','product_id','column' 例2: 更改orders表的名称为p_orders exec sp_rename 'orders','p_orders'
作者:Crazy Ma
出处:http://www.cnblogs.com/intcry
♪:30%的技术+70%的精神,帮助别人得到他想要的,你就能得到你想要的! ♪