เรามีตาราง SQL เก่าที่ SQL Server 2000 ใช้เป็นเวลาเกือบ 10 ปี
ในนั้นหมายเลขบัตรพนักงานของเราจะถูกเก็บเป็นchar(6)
จากไป000001
999999
ตอนนี้ฉันกำลังเขียนเว็บแอปพลิเคชันและต้องการจัดเก็บหมายเลขตราพนักงาน
ในตารางใหม่ของฉันฉันอาจจะใช้ตัดสั้นและคัดลอกตารางเก่า แต่ฉันหวังสำหรับการถ่ายโอนข้อมูลที่ดีกว่า, ขนาดที่เล็กกว่า ฯลฯ โดยเพียงแค่การจัดเก็บint
ค่าจากการ1
999999
ใน C # ฉันสามารถจัดรูปแบบint
ค่าสำหรับหมายเลขตราได้อย่างรวดเร็วโดยใช้
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
ฉันจะแก้ไขแบบสอบถาม SQL แบบธรรมดานี้เพื่อจัดรูปแบบค่าที่ส่งคืนด้วยได้อย่างไร
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
ถ้าEmployeeID
เป็น 7135, 007135
แบบสอบถามนี้ควรกลับ
FORMAT
ฟังก์ชั่นเช่น C # :-)
int
ค่านี้ใช้พื้นที่น้อยลงอย่างมากchar(6)
และจะมีรายการเหล่านี้หลายรายการต่อชิ้นส่วนที่ผลิตขึ้น อย่างมีประสิทธิภาพ
DATALENGTH()
) ได้สองไบต์ เนื่องจากคอลัมน์อาจอยู่ในดัชนีคุณจึงประหยัดได้มากกว่า 2MB และเมื่อเพิ่มคอลัมน์อื่นเข้าไป 2 ไบต์นั้นอาจเพียงพอที่จะลดความยาวของแถวให้เพียงพอที่จะบันทึกหน้า 4KB ต่อแถว สิ่งนี้จะโฮสต์บนแพลตฟอร์มมือถือหรือคุณอาจมุ่งความสนใจไปที่พื้นที่ที่ไม่ก่อให้เกิดประโยชน์?
0
s มีความสำคัญต่อข้อมูลนี้ทำไมเปลี่ยนไปยังINT
ที่ทั้งหมดหรือไม่