目次
次に、一意の注文番号を生成するプロセスについて説明します。コードと実際の操作を使用する
つまり:
十分なポイントがある場合は、ダウンロードしてください。ポイントがない場合は、画像を入力してください。とにかくコードの量は多くありません。
ホームページ データベース SQL SQL サーバーの高い同時実行性により、一意の注文番号が生成されます

SQL サーバーの高い同時実行性により、一意の注文番号が生成されます

Aug 29, 2020 pm 12:01 PM
sql server

#まえがき

数日前、私は一意の注文番号を生成する方法に関する記事を書きました。 MySQL の高い同時実行性、誰かが SQL サーバーのバージョンがあるかどうかを尋ねるプライベート メッセージを送信しました。今日の正午、私は一意の注文番号を生成する SQL サーバー バージョンの高い同時実行性の実装を書きました。実際、MySQL の原則とSQL サーバーは同じです。主な理由は、構文の一部が異なるため、この記事の本文の説明はほぼ同じであり、コードとインターフェイスが異なるだけです。

推奨:「

SQL チュートリアル

1. シナリオの再現

ERP 購買・販売システムや 0A などのシステムがある場合注文番号を生成する操作を同時に実行すると、複数の人が同じ注文番号を取得することが容易になり、会社のビジネスに取り返しのつかない損失が発生します

2. 同時実行性が高い状況を回避する方法注文番号が一意ではない場合

ストアド プロシージャとデータ テーブルを使用してテーブルを構築し、ストアド プロシージャを作成できます。ストアド プロシージャは注文番号を生成し、テーブルは一意性の問題を処理します。


SQL サーバーの高い同時実行性により、一意の注文番号が生成されますストアド プロシージャが注文番号を生成するときは、最初に注文番号をテーブルに書き込み、次に注文番号の結果を表示します。生成された注文番号をテーブルに書き込むとき、2 つの状況が発生します。理由?このテーブルには主キー (主キーの一意性) があるため、

    # と書くことができます: テーブル内に同じ注文番号がない場合、生成された注文番号がテーブルに書き込まれます
  • 書き込み不可:テーブル内に同じ注文番号が存在する場合、生成した注文番号をテーブルに書き込むことができず、注文番号を取得できないため、一意の注文番号が確保されます。
  • 3. 高い同時実行条件で一意の注文番号を生成するプロセス

次に、一意の注文番号を生成するプロセスについて説明します。コードと実際の操作を使用する

ステップ 1: データ テーブルを作成し、注文番号フィールドを主キー (一意の注文番号のキー) として設定します

#ステップ 2: 注文番号を生成するストアド プロシージャを作成する SQL サーバーの高い同時実行性により、一意の注文番号が生成されます
生成される注文番号の形式は次のとおりです: カスタム プレフィックス 年、月、日のサフィックス (001、002、003) 1. まずストアド プロシージャを作成します

パラメータは @BILL_TYPE

CREATE  PROCEDURE [dbo].[GetBillNO]
 @BILL_TYPE nvarchar(3)
ログイン後にコピー

2. 年、月、日、サフィックスを生成します

年、月、日は次のとおりです。現在のシステム時刻、サフィックスの初期値は 0

declare @BILL_NO nvarchar(15);declare @currentDate nvarchar(15);declare @lastno INT = 0;set @currentDate = Convert(varchar(10),Getdate(),112);
ログイン後にコピー

3 です。クエリ フォーム、テーブルの順序番号を取得します。

テーブルにクエリ、テーブルの順序番号を取得します。カスタム コンテンツに関連するプレフィックスを付けた最新の注文番号を @BILL_NO

select @BILL_NO = isnull(BILL_NO,0)
    FROM temp_bill 
    WHERE SUBSTRING(BILL_NO,1,3) =BILL_TYPE and
    SUBSTRING(BILL_NO,4,8) =@currentDate
ログイン後にコピー

4 に割り当てます。注文番号を生成します

If前の手順で取得した注文番号が空ではない場合、新しく生成される注文番号は元の注文番号 1
  • の 1 になります。例: 取得した注文番号: QNB20200615015

    つまり、生成される注文番号は次のようになります。 QNB20200615016


    前の手順で取得した注文番号が空の場合、新しく生成される注文番号のサフィックスは 001
  • 例: 生成される注文番号 :QNB20200615001

    IF @BILL_NO !='' begin
     SET @lastno = str(right(@BILL_NO, 3)+1) ; 
     set @BILL_NO = @BILL_TYPE+@currentDate+RIGHT('000'+CAST(@lastno as varchar),3);
     end;ELSE  begin
     set @BILL_NO = @BILL_TYPE+@currentDate+CAST('001' as varchar(20));END;
    ログイン後にコピー
    これを実行したとき、SQL サーバーには LPAD 機能がなかったため (足りない桁数を自動的に補完してくれる)、文字列のスプライシングを使用してから、 right をクリックして右側の 3 を取得します。目標は達成され ( ̄﹃ ̄)、デッドです

5。生成された注文番号をテーブルに挿入します

If the同じ注文番号がテーブルに存在する場合、テーブルへの挿入は失敗します 同じ注文番号がテーブルに存在しない場合、テーブルへの挿入は成功します

insert into Temp_Bill(BILL_NO,BILL_TYPE) values(@BILL_NO ,@BILL_TYPE )
ログイン後にコピー


6。一意の注文番号

注文がテーブルに正常に挿入されると、一意の注文番号が返されます (上記の 1 つのステップが失敗した場合、このステップは実行されません)

select @BILL_NO as BILL_NO
ログイン後にコピー
4. 実行結果

1. まず、テーブルにはデータがなく、プレフィックスが生成されます (UIE と入力しました) 年月日 (20200615) 001 (最初のデータなので、それは 001)

つまり:

QNB20200615001


2 2 回目に入力すると、テーブルにデータがあるため、最新の注文番号に従って、サフィックスに 1 を追加します:

QNB20200615002



5. 古いルールSQL サーバーの高い同時実行性により、一意の注文番号が生成されます

この記事がすべての人に役立つことを願っています

十分なポイントがある場合は、ダウンロードしてください。ポイントがない場合は、画像を入力してください。とにかくコードの量は多くありません。

あなたが学生でポイントがない場合は、個人的に私にメッセージを送ってください。ソースコードを無料でお送りします

コードのダウンロード リンク: SQL server_getbillno.bak
コードのスクリーンショット:


以上がSQL サーバーの高い同時実行性により、一意の注文番号が生成されますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Microsoft SQLサーバーとはどのようなソフトウェアですか? Microsoft SQLサーバーとはどのようなソフトウェアですか? Feb 28, 2023 pm 03:00 PM

Microsoft SQL Server は、Microsoft によって発売されたリレーショナル データベース管理システムです。統合されたビジネス インテリジェンス (BI) ツールを使用してエンタープライズ レベルのデータ管理を提供する包括的なデータベース プラットフォームです。使いやすく、拡張性が高く、高いパフォーマンスを備えています。関連ソフトウェアとの統合度が高く、高い利点があります。 SQL Server データベース エンジンは、リレーショナル データと構造化データに対して、より安全で信頼性の高いストレージ機能を提供し、ユーザーがビジネス向けに可用性とパフォーマンスの高いデータ アプリケーションを構築および管理できるようにします。

SQLサーバーかMySQLか?新しい調査により、データベースの最適な選択が明らかになりました。 SQLサーバーかMySQLか?新しい調査により、データベースの最適な選択が明らかになりました。 Sep 08, 2023 pm 04:34 PM

SQLServer それとも MySQL?最新の調査により最適なデータベースの選択が明らかに 近年、インターネットやビッグデータの急速な発展に伴い、データベースの選択は企業や開発者にとって重要な課題となっています。多くのデータベースの中でも、最も一般的で広く使用されている 2 つのリレーショナル データベースである SQL Server と MySQL は、非常に物議を醸しています。では、SQLServer と MySQL のどちらを選択すればよいでしょうか?最新の研究により、この問題が明らかになりました。まず、

PDO を使用して Microsoft SQL Server データベースに接続する方法 PDO を使用して Microsoft SQL Server データベースに接続する方法 Jul 29, 2023 pm 01:49 PM

PDO を使用して Microsoft SQL Server データベースに接続する方法の概要: PDO (PHPDataObjects) は、PHP が提供するデータベースにアクセスするための統合インターフェイスです。これには、データベースの抽象化レイヤーを実装したり、大量のコードを変更せずに異なるデータベース タイプを簡単に切り替えたりできるなど、多くの利点があります。この記事では、PDO を使用して Microsoft SQL Server データベースに接続する方法を紹介し、関連するコード例をいくつか示します。ステップ

PHP および SQL Server データベースの開発 PHP および SQL Server データベースの開発 Jun 20, 2023 pm 10:38 PM

インターネットの普及に伴い、Web サイトやアプリケーションの開発は多くの企業や個人の主要なビジネスになりました。 PHP と SQLServer データベースは 2 つの非常に重要なツールです。 PHP は動的な Web サイトの開発に使用できるサーバー側スクリプト言語であり、SQL Server は Microsoft によって開発されたリレーショナル データベース管理システムであり、幅広いアプリケーション シナリオを備えています。この記事では、PHPとSQL Serverの開発とそのメリット、デメリット、活用方法について説明します。まず、しましょう

SQL Server と PHP を接続する 5 つの方法の簡単な分析 SQL Server と PHP を接続する 5 つの方法の簡単な分析 Mar 21, 2023 pm 04:32 PM

Web 開発では、PHP と MySQL の組み合わせが非常に一般的です。ただし、場合によっては、SQL Server などの他の種類のデータベースに接続する必要があります。この記事では、PHP を使用して SQL Server に接続する 5 つの異なる方法について説明します。

SQL Server と MySQL: 高可用性アーキテクチャにはどちらのデータベースが適していますか? SQL Server と MySQL: 高可用性アーキテクチャにはどちらのデータベースが適していますか? Sep 10, 2023 pm 01:39 PM

SQL Server と MySQL: 高可用性アーキテクチャにはどちらのデータベースが適していますか?今日のデータ主導の世界では、信頼性が高く安定したシステムを構築するために高可用性が必須の 1 つです。データのストレージと管理の中核コンポーネントとして、データベースの高可用性は企業の業務運営にとって極めて重要です。多くのデータベースの中で、SQLServer と MySQL が一般的な選択肢です。では、高可用性アーキテクチャの観点から見ると、どのデータベースがより適しているのでしょうか?この記事では 2 つを比較し、いくつかの提案を示します。

SQL Server と MySQL の比較: 大規模なデータ処理にはどちらが適していますか? SQL Server と MySQL の比較: 大規模なデータ処理にはどちらが適していますか? Sep 09, 2023 am 09:36 AM

SQLServer と MySQL は、現在非常に人気のある 2 つのリレーショナル データベース管理システム (RDBMS) です。どちらも大規模なデータを保存および管理するための強力なツールです。ただし、大規模なデータの処理に関してはいくつかの違いがあります。この記事では、大規模なデータ処理への適性に焦点を当てて、SQL Server と MySQL を比較します。まず、SQLServer と MySQL の基本的な特性を理解しましょう。 SQLServerはMicrosoftによって開発されました

SQL Server と MySQL は競合します。最適なデータベース ソリューションを選択するにはどうすればよいでしょうか? SQL Server と MySQL は競合します。最適なデータベース ソリューションを選択するにはどうすればよいでしょうか? Sep 10, 2023 am 08:07 AM

インターネットの継続的な発展に伴い、データベースの選択はますます重要になってきています。多くのデータベースの中でも、SQLServer と MySQL の 2 つは注目度の高いオプションです。 SQLServer は Microsoft によって開発されたリレーショナル データベース管理システムであり、MySQL はオープンソースのリレーショナル データベース管理システムです。では、SQLServer と MySQL の間で最適なデータベース ソリューションを選択するにはどうすればよいでしょうか?まず、これら 2 つのデータベースをパフォーマンスの観点から比較できます。 SQLサーバーが処理中です

See all articles