博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLSERVER改变已有数据表中的列
阅读量:5815 次
发布时间:2019-06-18

本文共 1894 字,大约阅读时间需要 6 分钟。

SQLSERVER改变已有数据表中的列

包括改变字段的位置,增加列,更改列名称,更改列数据类型,列长度,增加标识列,增加主键,约束

上面这些在做数据库升级或者迁移的时候很多时候都要用到的

1.改变字段位置,只需要在表设计器中拖动字段到其他地方

直接在表设计器中,拖动字段到别的位置,然后点击保存
 

2.添加新列

例如为adventurworks数据库中employees表添加备注列(Comment),数据类型为字符型(变长型,长度50字符),该列允许为空

1 ALTER TABLE table_name2 ADD column_name data_type NULL
1 USE [AdventureWorks]2 GO3 ALTER TABLE [HumanResources].[Employee]4 ADD Comment CHAR(50) NULL5 GO

 

3.更改列名称

更改列名称不会影响列中的数据,但如果其他数据库对象引用了已修改的列,则用户必须同时做相应的修改

1 --将表test13中的列名由e重命名为x2 --语法:exec sp_rename '表名.原列名','新列名','column';3 USE [pratice]4 GO5 exec sp_rename 'dbo.test13.e','x','column';

 

 

4.更改列的数据类型以及长度

当表中有数据的时候,要注意转换的时候的长度和精度,以及转换的规则

1 --语法2 ALTER TABLE table_name3 ALTER COLUMN column_name data_type
1 --例如:将Employees表中的备注列Remark的数据类型更改为字符型(变长型,长度为255字符)2 USE [AdventureWorks]3 GO4 ALTER TABLE [HumanResources].[Employee]5 ALTER COLUMN Remark VARCHAR(255)

 

5.增加标识列

一个表只能有一个列定义为IDENTITY属性,而且该列必须以tinyint,smallint,int,bigint,numeric,decimal数据类型定义,标识符列

不允许空值。按需指定种子和增量值,二者默认值均为1。

1 --给Employees表添加一个员工编号(EmployeesCode)列,并将其设置为标识列2 USE [AdventureWorks]3 GO4 ALTER TABLE [HumanResources].[Employee]5 ADD EmployeesCode INT IDENTITY(1,1) NOT NULL

 

6.定义主键

每张表都应该有一个主键,主键可以由一列或者多列组成(复合主键),标识数据的唯一性,提高查询和排序速度

如果是复合主键,那么这些列的里的数据都不能重复,不单只是某一列

1 --使用TSQL语句为表定义主键约束保证数据完整性2 --为Employees表添加主键约束,将EmployeeID,LoginID,ManagerID列设置为复合主键3 USE [AdventureWorks]4 GO5 ALTER TABLE [HumanResources].[Employee]6 ADD CONSTRAINT PK_EMPLOYEES7 PRIMARY KEY CLUSTERED([EmployeeID],[LoginID],[ManagerID])

上个星期在客户那里因为要修改主键,忘记了TSQL怎麽写,要看着SSMS来设置,感觉慢了,所以写TSQL是最快的个人感觉

当然有添加也会有删除啦 把ADD 改为DROP

1 USE [AdventureWorks]2 GO3 ALTER TABLE [HumanResources].[Employee]4 DROP CONSTRAINT PK_EMPLOYEES

 

7.删除列

 当表中的某些列确定不再需要时,可以删除该列。在删除前,必须首先删除基于该列的索引和约束

1 --语法2 ALTER TABLE table_name3 DROP COLUMN [COLUMN_NAME]
1 --删除Employees表的Lastname列2 USE [AdventureWorks]3 GO4 ALTER TABLE [HumanResources].[Employee]5 DROP COLUMN [LastName]

 

这篇文章非常基础,我也只是做一些笔记   o(∩_∩)o

转载地址:http://clmbx.baihongyu.com/

你可能感兴趣的文章
红黑树
查看>>
UIImagePickerController拍照与摄像
查看>>
python调用windows api
查看>>
Linux内核中的printf实现【转】
查看>>
第四章 mybatis批量insert
查看>>
Java并发框架——什么是AQS框架
查看>>
【数据库】
查看>>
Win配置Apache+mod_wsgi+django环境+域名
查看>>
第四届中国汽车产业信息化技术创新峰会将于6月在沪召开
查看>>
linux清除文件内容
查看>>
WindowManager.LayoutParams 详解
查看>>
find的命令的使用和文件名的后缀
查看>>
Android的Aidl安装方法
查看>>
Linux中rc的含义
查看>>
曾鸣:区块链的春天还没有到来| 阿里内部干货
查看>>
如何通过Dataworks禁止MaxCompute 子账号跨Project访问
查看>>
js之无缝滚动
查看>>
Django 多表联合查询
查看>>
logging模块学习:basicConfig配置文件
查看>>
Golang 使用 Beego 与 Mgo 开发的示例程序
查看>>