MS SQL Server - How to change an existing column to auto-increment column

/* BY Dylan SUN*/

In SQL server when you want to make an existing column to be auto-incremented.

The following code is not working:

ALTER TABLE [dwh].[ExchangeRate]
ALTER COLUMN [ExchangeRateId] Int Identity(1, 1)

What you could do is :
- Create a new column with auto-increment
- Delete existing column constraint
- Delete the existing column
- Rename the new column back
- Add deleted constraint

Step 1: Create a new column

ALTER TABLE [dwh].[ExchangeRate]
ADD [ExchangeRateId2] Int Identity(1, 1)

Step 2: Delete existing constraint

ALTER TABLE [dwh].[ExchangeRate]
DROP CONSTRAINT [IxExchangeRate_ExchangeRateId_U_NC_]

Step 3: Delete existing column

ALTER TABLE [dwh].[ExchangeRate]
DROP COLUMN [ExchangeRateId]

Step 4: Rename new column

Exec sp_rename 'dwh.ExchangeRate.ExchangeRateId2', 'ExchangeRateId','COLUMN'

Step 5: Add deleted contraint

ALTER TABLE [dwh].[ExchangeRate] ADD  CONSTRAINT [IxExchangeRate_ExchangeRateId_U_NC_] PRIMARY KEY CLUSTERED 
(
[ExchangeRateId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值