2

SQL Server テーブルがあり、カスタム順序付けに使用する新しい列をテーブルに追加したいと考えています。作成後に値を変更できるようにする必要があるため、ID 列ではありません。

私のテーブルは

CREATE TABLE [dbo].[Ponies] (
    [Name] [nvarchar](50) NOT NULL
)

のようなデータで[{Name: Rarity},{Name: Applejack}]

私のテーブルが次のようになりたい

CREATE TABLE [dbo].[Ponies] (
    [Name] [nvarchar](50) NOT NULL,
    [IndexNumber] [int] NOT NULL
)

[{Name: Rarity, IndexNumber:1},{Name: Applejack, IndexNumber:2}]そして、alter ステートメントの後のようなデータにしたいのです。ポイントは、作成後に行の順序を変更できることです。つまり、新しい行を追加すると、古い行の順序を変更できます。

既存のデータ項目ごとにALTER増分が追加されるようにステートメントを実行するにはどうすればよいですか?IndexNumber

4

2 に答える 2

3

これを試して:

ALTER TABLE dbo.Ponies
ADD IndexNumber INT IDENTITY(1,1) NOT NULL

これにより、「ID」列がテーブルに追加されます。これは、行ごとに 1 から始まり、1 ずつ増加する番号が付けられます。挿入されるすべての新しい行に対して自動的に設定されます。

于 2013-03-14T11:34:08.110 に答える
2

editable column( Identity 列ではなく)が必要な場合は、次のように試してください。

フィドルのデモはこちら

alter table dbo.Ponies
add [IndexNumber] int not null default 0
Go

declare @index int = 0 
update dbo.Ponies set @index = [IndexNumber] = @index + 1

select * from dbo.Ponies
于 2013-03-14T11:42:34.903 に答える