alter table在MSSQL中的用法

本文介绍了MSSQL中alter table命令的多种实用技巧,包括约束的修改、新增列、设置默认值、添加标识列、定义主键、添加外键及列重命名等常见操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mssql 的alter table 命令提供了很多很强大的功能,本文的主要目的是记录下来笔者在使用过程中遇到的一些,
为了方便以后的查询。 


1. 对constraint的修改
alter table 没有 alter constraint 属性,所以只能是先drop constraint, 再add constraint.    
alter table [table_name] drop constraint [constraint_name]  
alter table [table_name] add constraint [constraint_name] [constraint_content]  


2. 增加一列
alter table [table_name] add [column_name] [column_type]  



3. 对某列加default 值 
这个实际上是属于add constraint的一部分, 不过是比较特殊的一种,所以单独列出来 
alter table [table_name] add constraint [constraint_name] default [default_value] for [column]  


4. 给某列加identity 或者清零
MSSQL本身不提供这样的功能,但是可以通过把某列删除,再创建的方式来实现 
alter table [table Name] drop column [column name]  
alter table [table Name ]add [column name] int identity(1,1) not null.  

清零
DBCC CHECKIDENT ( [table name], RESEED, 1)  
这种方式也可以实现identity的清零。


5. 给某列加primary key
alter   table   table_name     drop   constraint   pk_name    
alter   table   table_name   add   constraint   pk_name   primary   key   (column name)  


6. 给表加外键
ALTER TABLE [table name ]  
ADD CONSTRAINT [constraint name] FOREIGN KEY ([column name])  
    REFERENCES [reference table ] (reference column name ) ;  
ALTER TABLE [table name ]  
DROP CONSTRAINT [refence constraint name] ;  


7. 给一个表的某列改名
这里使用的不是alter ,而是MSSQL提供的了个sp_rename的SP。 
sp_rename 'object_name' ,  'new_name' , 'object_type' 


这里objtype 可以选择如下:

ValueDescription
COLUMNA column to be renamed.
DATABASEA user-defined database. This object type is required when renaming a database.
INDEXA user-defined index.
OBJECTAn item of a type tracked in sys.objects. For example, OBJECT could be used to rename objects including constraints (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), user tables, and rules.
USERDATATYPEAn alias data type or CLR User-defined Types added by executing CREATE TYPE or sp_addtype.

举个例子吧, 对表tblTable 的一列a ,改名为b 
exec sp_rename 'dbo.tblTable.a', 'b', 'COLUMN'  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值