sql >> データベース >  >> RDS >> Sqlserver

SQL Server での int 値の読み取りとインクリメント

    ロット番号は連続している必要がありますか? identity を使用しない理由 ?そうしないと、同時挿入試行がロールバックされてシーケンスにギャップが生じる場合に備えて、同時挿入試行をブロックする必要があるため、これは同時実行性の点で優れています。

    絶対に必要な場合は、できる

    CREATE TABLE dbo.Sequence 
      (
         OneRow CHAR(1) DEFAULT('X') PRIMARY KEY CHECK(OneRow = 'X'),
         val    INT
      )  
      

    初期シードを持つ行を挿入します。

    INSERT INTO dbo.Sequence 
                (val)
    VALUES     (1)  
      

    次に、挿入に十分なサイズの範囲を割り当てます (明らかに同じトランザクションで呼び出します)

    CREATE PROC dbo.GetSequence
    @val AS int OUTPUT,
    @n as int =1
    AS
    UPDATE dbo.Sequence 
    SET @val = val = (val + @n);
      

    1. スケジュールされた時間にPHPスクリプトを実行する方法

    2. エラー:無効なPathExpression。フィールドの選択に失敗したStateFieldPathExpressionである必要があります

    3. Oracleで特殊文字をプレーンテキストに変換する

    4. 一括収集を伴うテーブル関数が無効なデータ型をスローする