我想为每个具有值的现有行插入一个 ID
I want to insert an ID for every existing ROW with values
我有一个 table 包含不同的列(全部带有数据),我遇到的问题是我想为每一行分配一个 ID,但我不知道该怎么做。
我尝试使用游标,但我没有任何条件来区分行,因为在每一行中,一些数据将在其他行中。
我想做的事的例子:
TABLE RACE
___________
COLUMNS
___________
Circuit | Date | Pilots
Montmelo| 10/12| 24
Montmelo| 10/13| 24
Montmelo| 10/14| 24
Japan | 10/17| 23
这只是一个table的例子,我想要的是为每一行添加一个ID,增加1
TABLE RACE
___________
COLUMNS
___________
Circuit | Date | Pilots | ID
Montmelo| 10/12| 24 | 1
Montmelo| 10/13| 24 | 2
Montmelo| 10/14| 24 | 3
Japan | 10/17| 23 | 4
希望你理解我,对不起我的英语!
@Jeyem,您可以使用 ROW_NUMBER
轻松添加 ID
列。像这样:
DECLARE @MyTable TABLE (Circuit varchar(20), Date VARCHAR(8), Pilots int)
INSERT INTO @MyTable
SELECT 'Montmelo', '10/12', 24 UNION ALL
SELECT 'Montmelo', '10/13', 24 UNION ALL
SELECT 'Montmelo', '10/14', 24 UNION ALL
SELECT 'Japan', '10/17', 23
SELECT *, ID=ROW_NUMBER()over(order by Date)
FROM
@MyTable
Here 是我计算出来的。事实证明,您可以使用 IDENTITY 来计算这样的行数。
那就是:
ALTER TABLE RACE ADD id INT IDENTITY(1,1);
试试这个:-
ALTER TABLE RACE ADD id INT IDENTITY(1,1);
OR
select Circuit,Date,Pilots,ROW_NUMBER()OVER(ORDER BY (SELECT 1 )) as ID From RACE
我有一个 table 包含不同的列(全部带有数据),我遇到的问题是我想为每一行分配一个 ID,但我不知道该怎么做。
我尝试使用游标,但我没有任何条件来区分行,因为在每一行中,一些数据将在其他行中。
我想做的事的例子:
TABLE RACE
___________
COLUMNS
___________
Circuit | Date | Pilots
Montmelo| 10/12| 24
Montmelo| 10/13| 24
Montmelo| 10/14| 24
Japan | 10/17| 23
这只是一个table的例子,我想要的是为每一行添加一个ID,增加1
TABLE RACE
___________
COLUMNS
___________
Circuit | Date | Pilots | ID
Montmelo| 10/12| 24 | 1
Montmelo| 10/13| 24 | 2
Montmelo| 10/14| 24 | 3
Japan | 10/17| 23 | 4
希望你理解我,对不起我的英语!
@Jeyem,您可以使用 ROW_NUMBER
轻松添加 ID
列。像这样:
DECLARE @MyTable TABLE (Circuit varchar(20), Date VARCHAR(8), Pilots int)
INSERT INTO @MyTable
SELECT 'Montmelo', '10/12', 24 UNION ALL
SELECT 'Montmelo', '10/13', 24 UNION ALL
SELECT 'Montmelo', '10/14', 24 UNION ALL
SELECT 'Japan', '10/17', 23
SELECT *, ID=ROW_NUMBER()over(order by Date)
FROM
@MyTable
Here 是我计算出来的。事实证明,您可以使用 IDENTITY 来计算这样的行数。
那就是:
ALTER TABLE RACE ADD id INT IDENTITY(1,1);
试试这个:-
ALTER TABLE RACE ADD id INT IDENTITY(1,1);
OR
select Circuit,Date,Pilots,ROW_NUMBER()OVER(ORDER BY (SELECT 1 )) as ID From RACE