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 @ 2014-08-22 14:03  花儿笑弯了腰  阅读(831)  评论(0编辑  收藏  举报