3
สร้างค่าคงที่ระดับฐานข้อมูล (การแจงนับ) โดยไม่ใช้ CLR หรือไม่
ฉันมีวัตถุ SQL หลายอย่างที่ต้องดำเนินการทางเลือกอื่นตามสถานะที่ต้องการของคำขอ มีวิธีในการสร้างค่าคงที่ระดับฐานข้อมูล (การแจงนับ) ที่สามารถส่งผ่านไปยังกระบวนงานที่เก็บไว้ฟังก์ชันค่าตารางและใช้ในแบบสอบถาม (โดยไม่ต้องใช้ CLR) หรือไม่ CREATE PROCEDURE dbo.DoSomeWork(@param1 INTEGER, ..., @EnumValue myEnumType) AS ...; แล้วใช้มัน: EXEC doSomeWork 85, ..., (myEnumType.EnumValue1 + myEnumType.EnumValue2); ไหนmyEnumTypeจะเก็บค่าการแจงนับไม่กี่ ในขั้นตอนที่ฉันจะสามารถใช้@EnumValueและทดสอบกับค่าในmyEnumTypeการทำงานที่จำเป็น ฉันจะทำให้ค่าของmyEnumTypebitmask สำหรับกรณีที่ฉันกำลังพิจารณา สำหรับตัวอย่างง่ายๆให้พิจารณากระบวนการที่มีราคาแพงซึ่งใช้ชุดข้อมูลขนาดใหญ่และลดลงเป็นชุดข้อมูลที่มีขนาดเล็กลง แต่ยังคงมีขนาดใหญ่มาก ในกระบวนการนี้คุณต้องทำการปรับเปลี่ยนบางอย่างในระหว่างกระบวนการที่จะมีผลต่อผลลัพธ์ สมมติว่านี่เป็นตัวกรองสำหรับ (หรือต่อ) บันทึกบางประเภทตามสถานะของการคำนวณระดับกลางภายในการลดลง @EnumValueชนิดmyEnumTypeสามารถนำมาใช้ในการทดสอบสำหรับการนี้ SELECT ... FROM ... WHERE (@EnumValue & myEnumType.EnumValue1 = myEnumType.EnumValue1 AND ...) OR …