การรับค่า Indentity จากข้อมูลล่าสุดที่เพิ่มขึ้น หลังจากที่ใช้คำสั่ง INSERT เราสามารถส่งค่าที่เป็นเลขล่าสุดออกมาจาก store procedure ได้หลายวิธีดังนี้
- SELECT @@IDENTITY หรือ
- SELECT IDENT_CURRENT(‘ชื่อตาราง’) หรือ
- SELECT SCOPE_IDENTITY()
หรือจะใช้คำสั่ง DBCC CHECKIDENT (ชื่อตาราง, NORESEED)
ซึ่งจะแสดงผลลัพธ์ออกมาเป็น:
Checking identity information: current identity value ‘1’, current column value ‘1’.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
เราสามารถเอามาปรับใช้ในการรับค่า Id (สมมุติ Id เป็นตัวอย่างฟิลด์เก็บรหัส สร้างเป็น Integer แบบ Indentity) ของรายการข้อมูลล่าสุดหลังจากที่ทำการเพิ่มข้อมูลแล้ว เราก็จะสามารถอ่านค่า Id เพื่อนำไปใช้งานได้ต่อไป นอกจากนี้ยังสามารถหาค่า Id ล่าสุดได้อีกหลายวิธี เช่น
- SELECT MAX(Id) FROM ชื่อตาราง
- SELECT TOP 1 Id FROM ชื่อตาราง
การตรวจสอบเงื่อนไขด้วย EXISTS
กรณีต้องการตรวจสอบเงื่อนไขว่ามีข้อมูลอยู่ในฐานข้อมูลแล้วหรือไม่เราสามารถใช้คำสั่ง EXISTS ช่วยในการตรวจสอบได้ ตามตัวอย่าง
if EXISTS (select * from ชื่อตาราง where id = ‘123’)
— กรณีมีข้อมูลอยู่แล้ว
ELSE
— กรณียังไม่มีข้อมูล
การสุ่มเลือกข้อมูล (Random)
กรณีต้องการสุ่มเลือกข้อมูลเพื่อนำมาแสดงเราสามารถใช้ NEWID() เช่น SELECT top 5 * FROM ชื่อตาราง ORDER BY NEWID()
การนับจำนวน Record หลังจากรันคำสั่ง Insert, Update, Delete
/* how many rows were affected? */
SELECT @rc = @@ROWCOUNT