Fork me on GitHub

在已有的数据的表中添加自增列

在查询结果中添加自增列的两种方法

解决办法《一》:

在SQL Server数据库中表信息会用到Identity关键字来设置自增列。

但是当有数据被删除的话,自增列就不连续了。

如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句:

SELECT Row_Number() over ( order by getdate() ) as init , * FROM 表名

解决办法《二》:

使用关键字IDENTITY创建临时表

SELECT IDENTITY(int,1,1) as Nid,* INTO #T FROM 表名 SELECT * FROM #T

在已有的数据的表中添加自增列

alter table 表名 add 列名 int IDENTITY(1,1) NOT NULL

但是如上脚本不能够在表中有数据的时候执行

INSERT INTO [dbo].[HanTingDataAnalyzer]

SELECT Row_Number() over ( order by [CreateDate] ) as ID , [HotelID]
      ,[HotelName]
      ,[HotelNameEn]
      ,[CityID]
      ,[CityName]
      ,[Nation]
      ,[Telephone]
      ,[Address]
      ,[Fax]
      ,[Zip]
      ,[RoomCount]
      ,[checkInDate]
      ,[checkOutDate]
      ,[IsOpening]
      ,[HeaderPhoto]
      ,[Lng]
      ,[Lat]
      ,[RoomTypeID]
      ,[RoomTypeName]
      ,[MarketPrice]
      ,[HotelLowestPrice]
      ,[Price]
      ,[ExchangePoint]
      ,[CreateDate] FROM [dbo].[HanTingDataAnalyzer]  WHERE ID IS NOT NULL

#检查数量
SELECT  COUNT(1) FROM [dbo].[HanTingDataAnalyzer]
#删除老的数据
DELETE FROM [dbo].[HanTingDataAnalyzer] WHERE ID IS  NULL

posted @   花儿笑弯了腰  阅读(846)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示