2

データをテーブルに保存していますが、シリアル番号の列も必要です。それ、どうやったら出来るの?(私はこれをC#で行っています、おそらくそれは重要です。)

これはかなり単純なはずですが、グーグルは成功していません。

編集:私は整数を保存したくありません。整数を作成して作成と保存の間に保存すると、別のクエリが同じ数値を同時に保存しようとし、2つのエントリが取得されるため、保存時にSQLに作成するコマンドを与えたいと思います。同じ番号で。)

4

6 に答える 6

9

使用IDENTITY

CREATE TABLE YourTable
(
    ID INT IDENTITY
)

新しいレコードを挿入するたびに、SQL Serverがこの値の増分を処理します(2つのレコードが同じ番号を持つことはなく、一意です)。

于 2012-06-17T12:25:59.410 に答える
1

最善のアプローチはプログラムによるものではありませんが、データベースに増分フィールドを自動的に作成させます。SQL Serverでは、これはID列と呼ばれます。

挿入ステートメントでは、その列が存在しないかのようにスキップするだけですが、SQLServerによって自動的にインクリメントされてデータが入力されます。

于 2012-06-17T12:23:47.340 に答える
1

Uniqueidentifierは問題を解決しますが、スケーラブルではありません。結果のインデックスが非常に大きく、その値が常に増加するわけではないため、列はクラスター化インデックスの作成には適していません(明確に定義されたクラスター化インデックスに対する制限)。

キーワードIDENTITYは非常に適切であり、必要に応じて整数データ型(smallint、int、bigint ...)から選択でき、関数scope_identity()を介して割り当てられた最後の値を安全に取得できます。

于 2015-08-10T20:47:55.963 に答える
0

IDENTITYsqlで利用可能な使用。以下は例です

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

参照

于 2012-06-17T12:24:15.250 に答える
0

シリアル番号を主キーNOTNULLおよび自動インクリメントとして定義します。これがお役に立てば幸いです。

于 2012-06-17T12:34:47.123 に答える
0

GUID( SQL Serverでは別名UNIQUEIDENTIFIERデータ型)の使用についてどう思いますか?

DECLARE @myid uniqueidentifier = NEWID();
SELECT @myid
于 2013-11-20T10:23:57.460 に答える