数据库更新Sqlserver脚本总结

时间:2022-08-29 11:00:31

表复制: 
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'