Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
   
 

Registered : 102,396




HOME > บทความจากสมาชิก > สร้าง Auto ID หรือลำดับที่มีตัวอักษร ปี, เดือน บน SQL Server ด้วย Stored Procedure

สร้าง Auto ID หรือลำดับที่มีตัวอักษร ปี, เดือน บน SQL Server ด้วย Stored Procedure

 
 
       
Bookmark.   
Share
       
สร้าง Auto ID หรือลำดับที่มีตัวอักษร ปี, เดือน บน SQL Server ด้วย Stored Procedure วิธีการสร้าง Auto ID หรือ Auto Number ถ้าใช้ Database ของ SQL Server การเขียนบน Stored Procedure เป็นอีกวิธีหนึ่งที่จะช่วยให้การสร้าง Auto ID นั้นง่ายและสะดวกมาก เพราะสามารถที่จะเขียนเงื่อนไขต่าง ๆ เช้น การ Select ค่า ID หรือการ Update ID ที่เป็นลำดับบน Stored Procedure ได้เลย ซึ่งตัว Result ที่ได้ เราจะใช้การส่งค่ากลับในรูแบบของ OUT หรือ OUTPUT จากนั้นช้ฝั่งของโปรแกรมเช่น PHP, .Net หรือ Java อ่านค่า ID นั้นไปใช้งานได้เลย



Auto ID Number ด้วย SQL Server (Stored Procedure)


ในตัวอย่างนี้จะประกอบด้วย 2 ตัวอย่างคือ
1. สร้าง ID แบบทีตัวอักษรและลำดับ เช่น TC-00001
2. สร้าง ID แบบที่มี ปี, เดือน และลำดับ เช่น TC-2016-12-0001

สำหรับ Stored Procedure ในตัวอย่างนี้จะใช้การส่งค่ากลับแบบ OUTPUT ซึ่งจะมีตัวอย่างการเชื่อมต่อกับ Stored Procedure ของ SQL Server ในรูปแบบต่าง ๆ ในส่วนท้ายของบทความ

Ex1. สร้าง Auto ID แบบทีตัวอักษรและลำดับ เช่น TC-00001

ใน Concept ของตัวอย่างแรก ให้สร้าง Table ง่าย ๆ สำหรับจัดเก็บลำดับแบบง่าย ๆ โดยจัดเก็บเป็นตัวเลข ที่เป็น ID ล่าสุด เพื่อจะได้นำไป +1 เมื่อมีการดึงค่า ID ใหม่

Table : GenerateNumber
CREATE TABLE [dbo].[GenerateNumber](
	[Sequence] [int] NOT NULL,
 CONSTRAINT [PK_GenerateNumber] PRIMARY KEY CLUSTERED 
(
	[Sequence] ASC
)) ON [PRIMARY]

GO

INSERT INTO GenerateNumber (Sequence) VALUES ('1');

SQL Server Stored Procedure Generate Auto ID Auto Number

Stored Procedure : GetAutoIDNo
CREATE PROCEDURE [dbo].[GetAutoIDNo]
	@sPrefix				VARCHAR(10),
	@iLength				INT,

	@sAutoID				VARCHAR(14) OUTPUT
AS
SET DATEFORMAT DMY;  
BEGIN

	SET NOCOUNT ON;

	DECLARE	@iSeq		INT = 0;
	
	BEGIN TRY
		SELECT @iSeq = ISNULL(Sequence,0) FROM GenerateNumber WITH (NOLOCK) ;

		SET @sAutoID	= @sPrefix + '-' + CAST(REPLACE(STR(@iSeq, @iLength), SPACE(1), '0')  AS VARCHAR(20))
		SET @iSeq = @iSeq + 1;
		UPDATE GenerateNumber SET  [Sequence] = @iSeq;
		
	END TRY
	BEGIN CATCH
		SET @sAutoID		=	@sPrefix + '-00000';
	END CATCH

	RETURN 0;
END

Result

DECLARE	@return_value int,
		@sAutoID varchar(14)

EXEC	@return_value = [dbo].[GetAutoIDNo]
		@sPrefix = N'TC',
		@iLength = 5,
		@sAutoID = @sAutoID OUTPUT

SELECT	@sAutoID as N'@sAutoID'


SQL Server Stored Procedure Generate Auto ID Auto Number

ID ที่ได้



Ex2. สร้าง Auto ID แบบทีตัวอักษร ปี, เดือน และลำดับ เช่น TC-2016-12-00001

ใน Concept ของตัวอย่างที่ 2 ให้สร้าง Table ง่าย ๆ สำหรับจัดเก็บลำดับแบบง่าย ๆ โดย Table ให้มีการแยกจัดเก็บ ปี และ เดือน และ ลำดับ โดยรายการ เดือนและปี รวมทั้งลำดับ จะมีการ Insert ลงอัตโนมัติ เมื่อขึ้น ปี หรือ เดือน ใหม่

Table : GenerateNumber
CREATE TABLE [dbo].[GenerateNumber](
	[Year] [int] NOT NULL,
	[Month] [int] NOT NULL,
	[Sequence] [int] NOT NULL,
 CONSTRAINT [PK_GenerateNumber] PRIMARY KEY CLUSTERED 
(
	[Year] ASC,
	[Month] ASC,
	[Sequence] ASC
)) ON [PRIMARY]

SQL Server Stored Procedure Generate Auto ID Auto Number

Stored Procedure : GetAutoIDNo
CREATE PROCEDURE [dbo].[GetAutoIDNo]
	@sPrefix				VARCHAR(10),
	@iLength				INT,

	@sAutoID				VARCHAR(30) OUTPUT
AS
SET DATEFORMAT DMY;  
BEGIN

	SET NOCOUNT ON;
	DECLARE	@iYear		INT = YEAR(GETDATE());
	DECLARE	@iMonth		INT = MONTH(GETDATE());
	DECLARE	@iSeq		INT = 0;
	
	BEGIN TRY
		SELECT @iSeq = ISNULL([Sequence],0) FROM GenerateNumber WITH (NOLOCK) WHERE [Year] = @iYear AND [Month] = @iMonth;
		IF @iSeq = 0
			BEGIN
				SET @iSeq = 1;
				INSERT INTO GenerateNumber ([Year],[Month],[Sequence]) VALUES (@iYear, @iMonth, @iSeq);
			END

		SET @sAutoID	= @sPrefix + '-' 
				+ CAST(REPLACE(STR(@iYear, 4), SPACE(1), '0')  AS VARCHAR(4)) + '-'
				+ CAST(REPLACE(STR(@iMonth, 2), SPACE(1), '0')  AS VARCHAR(2)) + '-'
				+ CAST(REPLACE(STR(@iSeq, @iLength), SPACE(1), '0')  AS VARCHAR(20))
		SET @iSeq = @iSeq + 1;
		UPDATE GenerateNumber SET  [Sequence] = @iSeq WHERE [Year] = @iYear AND [Month] = @iMonth;
		
	END TRY
	BEGIN CATCH
		SET @sAutoID		=	@sPrefix + '-0000-00-00000';
	END CATCH

	RETURN 0;
END

Result

DECLARE	@return_value int,
		@sAutoID varchar(30)

EXEC	@return_value = [dbo].[GetAutoIDNo]
		@sPrefix = N'TC',
		@iLength = 5,
		@sAutoID = @sAutoID OUTPUT

SELECT	@sAutoID as N'@sAutoID'


SQL Server Stored Procedure Generate Auto ID Auto Number

ID ที่มี ปี และ เดือน มาเกี่ยวข้อง

SQL Server Stored Procedure Generate Auto ID Auto Number

ID ที่มี ปี และ เดือน มาเกี่ยวข้อง

SQL Server Stored Procedure Generate Auto ID Auto Number

ในกรณีที่ขึ้น เดือน หรือ ปี ใหม่ ก็จะเริ่มนับ 1 ใหม่

SQL Server Stored Procedure Generate Auto ID Auto Number

รายการ Table ที่เกี่ยวข้อง ที่ถูก Insert อัตโนมัติ

Note!! ในตัวอย่างนี้จะส่งค่ากลับจาก Stored Procedure ในรูปแบบของ OUTPUT ฉะนั้นการอ่านค่าด้วยภาษาต่าง ๆ จะแตกต่างกันไป

PHP กับ SQL Server Stored Procedure

Visual Basic (VB.Net) เรียกใช้ EXEC SQL Server Stored Procedure

Visual C# (C# .Net) เรียกใช้ EXEC/CALL - SQL Server Stored Procedure

Java เรียกใช้ EXEC/CALL - SQL Server Stored Procedure ด้วย (JDBC)


   
Share

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2016-12-28
  Download : No files
Sponsored Links
 

Sponsored Links
PHP Forgot Lost Password and Sending Password to Mail ทำ Form ลืมรหัสผ่าน ด้วย PHP กับ MySQL
PHP Forgot Lost Password and Sending Password to Mail ทำ Form ลืมรหัสผ่าน ด้วย PHP กับ MySQL
การทำ Form สำหรับ Reset รหัสผ่าน หรือขอข้อมูล Username และ Password ใหม่ ในกรณีที่ผู้ใช้ Forgot Password
Rating : Update : 2014-09-07 12:54:55
สิ่งที่ทุกคนต้องรู้ ในการเขียนโปรแกรมแสดงผลในรูปแบบ HTML (ทำเว็บไซต์) ด้วย PHP หากไม่อยากให้ระบบที่เขียนนั้นถูก HACK ได้ !!!
สิ่งที่ทุกคนต้องรู้ ในการเขียนโปรแกรมแสดงผลในรูปแบบ HTML (ทำเว็บไซต์) ด้วย PHP หากไม่อยากให้ระบบที่เขียนนั้นถูก HACK ได้ !!!
บทความนี้จะอธิบายและแนะนำวิธีการป้องกัน XSS (Cross-site scripting) ใน PHP ด้วยการ escape ค่าของตัวแปรที่รับมาจากผู้ใช้ในกรณีที่ส่งข้อมูลออกมาในรูปแบบ HTML เพื่อแสดงผลในบราวเซอร์
Rating : Update : 2013-08-26 18:14:38
Android and Image Gallery Slideshow from Server
Android and Image Gallery Slideshow from Server
บทความการสร้าง Gallery Image และการดึงรุปภาพที่เป็น Thumbnail และ Full Photo มาแสดงบนหน้าจอของ Application หลักการก็คือใช้ PHP และ MySQL ที่ทำงานอยู่ใน Web Server เก็บ Gallery ลงใน Database
Rating : Update : 2013-02-28 14:30:40
C# DataGridView + OpenFileDialog แบบบ้านๆ
C# DataGridView + OpenFileDialog แบบบ้านๆ
วันนี้จะขอนำเสนอ การเพิ่ม DataGridViewTextBoxColumn แบบมีปุ่มกด พอดีมีวันหนึ่ง QC document มาบอกว่า ตารางอยากให้กดเลือกไฟล์ได้เลย ตอนแรกก็งงแต่คิดไปคิดมามันก็น่าจะทำได้นี่นา ก็เลยลองหาว่าธี เพิ่ม DataGridViewTextBoxColumn แบบมีปุ่มกด เพื่อ select path ได้
Rating : Update : 2016-06-02 11:01:01
List/Select Menu และการ Auto Fill Textbox สร้างลิสเมนู และ เลือกค่าแสดงผลไปยัง Textbox
List/Select Menu และการ Auto Fill Textbox สร้างลิสเมนู และ เลือกค่าแสดงผลไปยัง Textbox
สร้าง list menu จากฐานข้อมูล MySQL ด้วย php และเมื่อเลือก Auto Fill ค่าจาก select menu จะถูกส่งแสดงผลไปยัง Textbox
Rating : Update : 2014-09-07 12:40:59
PHP - การออกรายงาน PDF ด้วย mPDF ด้วยวิธีอย่างง่ายและการเพิ่ม Font ไทยให้แก่ mPDF
PHP - การออกรายงาน PDF ด้วย mPDF ด้วยวิธีอย่างง่ายและการเพิ่ม Font ไทยให้แก่ mPDF
บทความนี้จะอธิบายการออกรายงานด้วย PDF จะ html ซึ่งมีความยืดหยุ่นสูงและสามารถใช้งานได้ง่าย โดย mpdf เป็น library การออก PDF ที่ใช้งานง่ายอีกทั้งยังมีการปรับปรุงและอัพเดตอยู่เกือบตลอกเวลา รองรับการใส่ Css อีกด้วย ซึ่งโดยรวมแล้วใช้งานได้ง่ายมากกว่า FPDF และ TCPDF ครับ
Rating : Update : 2015-03-02 17:39:01


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน Struts การเขียนโปรแกรม Java Struts Framework
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน Yii  Framework การเขียนโปรแกรม ภาษา PHP กับ Yii
สอน .Net การเขียนโปรแกรม ภาษา .Net

Free Tutorial
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว

สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   




Acc : thaicreate@hotmail.com






Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2015 All Rights Reserved.
for Contact Us : [Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 084-715-5121 อัตราราคา คลิกที่นี่

Back to Top