ホームページ  >  記事  >  コンピューターのチュートリアル  >  SQL Server 2008 で自動番号付けを実装するにはどうすればよいですか?

SQL Server 2008 で自動番号付けを実装するにはどうすればよいですか?

王林
王林転載
2024-01-09 20:38:08568ブラウズ

SQL Server 2008 に自動的に番号を付ける方法

注: ID 属性は、NULL を許可せず、データ型が 10 進数、整数、数値、小さい整数、大きい整数、または小さな整数の列にのみ設定できます。さらに、ID プロパティを主キー列に設定することはできません。

###1つ。 SQL 管理ツールを使用して列の ID 属性を変更する

1. オブジェクト エクスプローラーで、データ型を変更する列を含むテーブルを右クリックし、[変更] をクリックします。テーブルはテーブル デザイナーで開きます。

2. 変更する列の「NULL を許可する」チェックボックスをオフにします。

3. [列のプロパティ] タブで、[識別仕様] プロパティを展開します。

4.「はい ID」サブプロパティのグリッド セルをクリックし、ドロップダウン リストから「はい」を選択します。

5.「識別シード」セルに値を入力します。この値はテーブルの最初の行に割り当てられます。デフォルトでは、この値は 1 になります。

6.「識別増分」セルに値を入力します。この値は、「識別シード」に基づいた行ごとの増分です。デフォルトでは、増分は 1 に設定されています。

###二。作成するSQL文

テーブル作成時に自動番号付けフィールドを指定する

CREATE TABLE [dbo].[UserInfor](

[UserID] [int] IDENTITY(100,2) NOT NULL, --初期値と増分ステップはここで指定できます

[ユーザー名] [nchar](10) NOT NULL、)

SQL サーバーの自動番号付けの問題について

テーブルを作成し、列の「ID 列」プロパティ (「ID」など) を「はい」に設定し、そのシード (初期値) と増分を設定できます。たとえば、シードを 1 に設定し、増分を 1 (デフォルト設定) に設定すると、生成される ID シーケンスは次のようになります: 1、2、3、4、...

レコード数がそれほど多くない (1,000 万件以上) 場合、この値は一意です。つまり、2 つは同じではありません。

しかし、問題が発生します。たとえば、10 個のレコードを順番に生成するとします。

1、2、3、4、5、6、7、8、9、10

次に、レコード No. 3 を削除すると、残りのレコードは次のようになります:

1、2、4、5、6、7、8、9、10

数値を途中で中断することなく 1 から徐々に増加させたい場合は、「数値」などの別の非識別列を設定できます。新しいレコードを追加するときは、次のメソッドを使用できます:

クエリ ステートメントでは、次のステートメントを使用して、テーブル内の数値列の最大値を選択できます。 SELECT @number = MAX(number) FROM テーブル名

テーブル名(数値)の値(@数値1)に挿入

---------------------

上記は SQL ステートメントを使用したデモですが、データベースの操作にはストアド プロシージャを使用することを前提としています。 ASP言語を使用する場合は、次のように実行できます:

psql = "SELECT MAX(数値) AS maxnumber FROM テーブル名"

rs.open psql,conn,3,3

maxnumber=rs("最大番号")

最大数値を読み取り、1 を加算して、それをデータ追加ステートメントで使用します。

---------------------

このようにして、手動で番号を生成し、レコードを削除するときに次のようなプログラムを作成できます。

' 削除するレコード番号を@n

とする

番号=@n

のテーブル名を削除します

tablename という名前のレコードを更新し、number フィールドの値を 1 ずつ減らしますが、number がパラメータ @n の値より大きい場合にのみ更新します。

これを行った後、番号の順序を並べ替え、レコードを削除して番号を付け直します。同様にSQL文のデモもお見せできますが、今回はASP SQLを使用したコードは提供されておりませんので、ご自身で参照して理解してください。

以上がSQL Server 2008 で自動番号付けを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はdocexcel.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。