พฤติกรรมแปลก ๆ กับคอลัมน์ที่คำนวณใน SQL-Server
ในขณะที่อ่านหนังสือสอบ 70-433 ของฉันฉันคิดถึงสิ่งที่ฉันเห็นว่าไม่ทำงาน แต่ฉันเชื่อว่าเป็นเช่นนั้น บทความอ่านอะไรบางอย่างเช่น: คอลัมน์ต้องถูกทำเครื่องหมายเป็นPERSISTEDซึ่งหมายความว่า SQL Server เก็บผลลัพธ์ของนิพจน์ของคอลัมน์ที่คำนวณไว้ในแถวข้อมูลแทนการคำนวณทุกครั้งที่มีการอ้างอิงในแบบสอบถาม จากนี้ฉันเข้าใจสองสิ่ง: ไม่ใช่ยืนกรานคอลัมน์คำนวณจะคำนวณทุกครั้งที่มีการอ้างถึงในแบบสอบถาม เนื่องจากไม่มีสิ่งใดถูกเก็บไว้สำหรับคอลัมน์ที่คำนวณฉันจึงไม่สามารถสร้างดัชนีสำหรับคอลัมน์ได้ หลังจากอ่านแล้วฉันคิดว่ามันแปลกไปนิดหน่อยที่ฉันสามารถสร้างดัชนีในคอลัมน์ที่ไม่มีการยืนยันในโครงการก่อนหน้านี้ สามารถสร้างดัชนีสำหรับบางสิ่งที่ไม่คงอยู่ได้อย่างไรและเป็นอันตรายในระยะยาวหรือไม่ เพื่อพิสูจน์สิ่งนี้ฉันได้รันคำสั่ง SQL ต่อไปนี้: CREATE TABLE testTable ( ID INT IDENTITY(1,1) PRIMARY KEY, telephone VARCHAR(14), c_areaCode AS (SUBSTRING(telephone,0,5)), cp_areaCode AS (SUBSTRING(telephone,0,5)) PERSISTED ) INSERT INTO testTable VALUES('09823 000000'); INSERT INTO testTable VALUES('09824 000000'); INSERT INTO testTable VALUES('09825 …