我有一个 SQL Server 表,我想向表中添加一个新列,用于自定义排序。不是标识列,因为我需要能够在创建后更改值。
我的 table 是
CREATE TABLE [dbo].[Ponies] (
[Name] [nvarchar](50) NOT NULL
)
使用诸如[{Name: Rarity},{Name: Applejack}]
之类的数据。
我希望我的 table 变成这样
CREATE TABLE [dbo].[Ponies] (
[Name] [nvarchar](50) NOT NULL,
[IndexNumber] [int] NOT NULL
)
我希望 alter 语句之后的数据类似于 [{Name: Rarity, IndexNumber:1},{Name: Applejack, IndexNumber:2}]
。要点是行的顺序可以在创建后更改,这意味着当添加新行时可以更改旧行的顺序。
如何执行 ALTER
语句以便为每个现有数据项添加增量 IndexNumber
?
最佳答案
试试这个:
ALTER TABLE dbo.Ponies
ADD IndexNumber INT IDENTITY(1,1) NOT NULL
这会向表中添加一个“身份”列 - 每行从 1 开始编号,以 1 递增。它将自动为所有插入的新行设置。
关于SQL 添加具有递增值的新可编辑(非标识)列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15408022/