Vor ein paar Tagen habe ich einen Artikel darüber geschrieben, wie man in MySQL eine eindeutige Bestellnummer mit hoher Parallelität generiert. Jemand hat eine private Nachricht gesendet, um zu fragen, ob es eine SQL-Server-Version gibt. Heute Mittag habe ich speziell über die hohe Parallelität der SQL-Server-Version geschrieben. Die Implementierung der Generierung einer eindeutigen Bestellnummer ist tatsächlich die gleiche wie bei MySQL und SQL Server. Der Hauptgrund ist, dass einige ihrer Syntaxen etwas unterschiedlich sind. Sie werden also feststellen, dass die Textbeschreibung meines Artikels fast identisch ist, nur der Code und die Schnittstelle sind unterschiedlich.
Empfohlen: „SQL-Tutorial“
Wenn in einem ERP-Einkaufs-, Verkaufs- und Lagersystem oder anderen Systemen wie 0A mehrere Personen gleichzeitig die Generierung von Bestellnummern durchführen, ist dies der Fall Für mehrere Personen ist es einfach, das gleiche Ergebnis zu erzielen. Eine Bestellnummer führt zu irreparablen Verlusten für das Unternehmen. 2. So vermeiden Sie Situationen mit hoher Parallelität, in denen die Bestellnummer nicht eindeutig ist. Wir können gespeicherte Prozeduren und Datentabellen verwenden Erstellen Sie eine Tabelle und erstellen Sie gespeicherte Prozeduren und gespeicherte Prozeduren. Verantwortlich für die Generierung von Bestellnummern, und die Tabelle ist für die Behandlung von Eindeutigkeitsproblemen verantwortlich
Wenn die gespeicherte Prozedur eine Bestellnummer generiert, schreiben Sie zuerst die Bestellnummer in die Tabelle und zeigen Sie sie dann an Ergebnis der Bestellnummer: Schreiben Sie die generierte Bestellnummer in die Tabelle. Es treten zwei Situationen auf. Da unsere Tabelle einen Primärschlüssel (Eindeutigkeit des Primärschlüssels) hat, kann
in Folgendes geschrieben werden: Wenn die Tabelle nicht dieselbe Bestellnummer hat, wird die generierte Bestellnummer in die Tabelle geschrieben.
kann nicht geschrieben werden in: Wenn in der Tabelle dieselbe Bestellnummer vorhanden ist, d. Der Prozess der Generierung einer eindeutigen Bestellnummer bei hoher Parallelität
Schritt 1: Erstellen Sie eine Datentabelle und legen Sie das Bestellnummernfeld als Primärschlüssel fest ( der Schlüssel zur eindeutigen Bestellnummer)
Das Format zum Generieren einer Bestellnummer ist: benutzerdefiniertes Präfix + Jahr, Monat, Tag + Suffix (001, 002 , 003)1. Erstellen Sie zunächst eine gespeicherte Prozedur
Der Parameter ist @BILL_TYPE
CREATE PROCEDURE [dbo].[GetBillNO] @BILL_TYPE nvarchar(3)
declare @BILL_NO nvarchar(15);declare @currentDate nvarchar(15);declare @lastno INT = 0;set @currentDate = Convert(varchar(10),Getdate(),112);
Fragen Sie die Tabelle ab und erhalten Sie das Präfix für den benutzerdefinierten Inhalt. Die neueste Bestellnummer und weisen Sie sie @BILL_NO zu
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
Wenn die im vorherigen Schritt erhaltene Bestellnummer nicht leer ist, ist die neu generierte Bestellnummer +1 auf der ursprünglichen Bestellnummer
Die generierte Bestellnummer lautet: QNB20200615016
Beispiel: Die generierte Bestellnummer: 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;
5. Fügen Sie die generierte Bestellnummer in die Tabelle ein.
Wenn dieselbe Bestellnummer in der Tabelle vorhanden ist, schlägt das Einfügen in die Tabelle fehl.
Wenn dieselbe Bestellnummer vorhanden ist nicht in der Tabelle vorhanden ist, ist das Einfügen in die Tabelle erfolgreich erfolglos, dieser Schritt wird nicht ausgeführt. + 001 (die ersten Daten, also 001)2 Wenn ich es zum zweiten Mal eingebe, basieren die Daten auf dem Suffix Plus der neuesten Bestellnummer, da die Tabelle Daten enthält 1 ist: QNB20200615002
5. Alte Regeln
Ich hoffe, dieser Artikel kann allen helfen
Code-Screenshot:
Das obige ist der detaillierte Inhalt vonSQL Server generiert eine eindeutige Bestellnummer mit hoher Parallelität. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!