改变已有数据表中的列添加列改列名改数据类型改长度增加标识列改主键删除列

--SQLSERVER 改变已有数据表中的列添加列改列名改数据类型改长度增加标识列改主键删除列 
--2. 添加新列
-- 例如为adventurworks 数据库中 employees表添加备注列( Comment ), 数据类型为字符型(变长型,长度字符),
-- 该列允许为空
ALTER TABLE table_name
ADD column_name data_type NULL
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
ADD Comment CHAR ( 50) NULL
GO

 
--3. 更改列名称
-- 更改列名称不会影响列中的数据,但如果其他数据库对象引用了已修改的列,则用户必须同时做相应的修改
-- 将表test13 中的列名由 e 重命名为x
-- 语法:exec sp_rename ' 表名原列名 ',' 新列名','column';
USE [pratice]
GO
exec sp_rename 'dbo.test13.e', 'x' ,'column' ;
 
--4. 更改列的数据类型以及长度
-- 当表中有数据的时候,要注意转换的时候的长度和精度,以及转换的规则
-- 语法ALTER TABLE table_name
-- ALTER COLUMN column_name data_type

-- 例如:将Employees 表中的备注列 Remark 的数据类型更改为字符型(变长型,长度为字符)
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
ALTER COLUMN Remark VARCHAR( 255 )



--5. 增加标识列
-- 一个表只能有一个列定义为 IDENTITY 属性,而且该列必须以 tinyint, smallint ,int , bigint, numeric ,decimal 数据类型定义,标识符列
-- 不允许空值。按需指定种子和增量值,二者默认值均为。
  --给 Employees 表添加一个员工编号( EmployeesCode)列,并将其设置为标识列
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
ADD EmployeesCode INT IDENTITY( 1 ,1 ) NOT NULL
 
--6. 定义主键
-- 每张表都应该有一个主键,主键可以由一列或者多列组成(复合主键),标识数据的唯一性,提高查询和排序速度
-- 如果是复合主键,那么这些列的里的数据都不能重复,不单只是某一列
-- 使用TSQL 语句为表定义主键约束保证数据完整性 -- 为Employees 表添加主键约束,
-- 将EmployeeID,LoginID,ManagerID 列设置为复合主键
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
ADD CONSTRAINT PK_EMPLOYEES
PRIMARY KEY CLUSTERED( [EmployeeID] ,[LoginID] , [ManagerID])

-- 当然有添加也会有删除啦把 ADD 改为DROP
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
DROP CONSTRAINT PK_EMPLOYEES


 
--7. 删除列
-- 当表中的某些列确定不再需要时,可以删除该列。在删除前,必须首先删除基于该列的索引和约束
-- 语法ALTER TABLE table_name
--DROP COLUMN [COLUMN_NAME]
-- 删除Employees 表的 Lastname列
USE [AdventureWorks]
GO
ALTER TABLE [HumanResources] .[Employee]
DROP COLUMN [LastName]

 

posted @ 2018-01-24 20:32  Xia_Sir_java_nbsp  阅读(229)  评论(0编辑  收藏  举报