จุดที่ WHERE 1 = 2 คืออะไรสำหรับ SELECT INTO table query


39

ถ้าเราต้องการสร้างตารางใหม่จากตารางที่มีอยู่ใน SQL Server เราสามารถทำสิ่งต่อไปนี้

SELECT * into Table2
from Table1
WHERE 1=2

จุดที่ข้อคืออะไร? ฉันลองมันโดยไม่ใช้ประโยคไหนและมันก็ใช้ได้ดี ฉันเคยเห็นสิ่งนี้ซึ่งมีหลายตัวอย่างในอินเทอร์เน็ต แต่ไม่ใช่เหตุผลว่าทำไมมันถึงต้องการ

คำตอบ:


54

เหตุผลที่คุณใส่WHERE 1=2ในประโยคที่SELECT INTOแบบสอบถามคือการสร้างสนามสำเนาของตารางที่มีอยู่ด้วยไม่มีข้อมูล

หากคุณทำสิ่งนี้:

select *
into Table2
from Table1

Table2จะซ้ำกันแน่นอนTable1รวมถึงแถวข้อมูล แต่ถ้าคุณไม่ต้องการข้อมูลที่มีอยู่Table1และคุณเพียงต้องการโครงสร้างของตารางคุณใส่ส่วนWHEREคำสั่งเพื่อกรองข้อมูลทั้งหมด

SELECT INTOอ้างอิงBOL อ้างอิง :

เลือก ... เข้าสู่สร้างตารางใหม่ในกลุ่มไฟล์เริ่มต้นและแทรกแถวผลลัพธ์จากแบบสอบถามลงใน

หากWHEREส่วนคำสั่งของคุณไม่มีแถวที่เป็นผลลัพธ์จะไม่มีการแทรกลงในตารางใหม่: ดังนั้นคุณจะจบลงด้วยสคีมาที่ซ้ำกันของตารางดั้งเดิมโดยไม่มีข้อมูล (ซึ่งจะเป็นผลลัพธ์ที่ต้องการในกรณีนี้)

เอฟเฟกต์เดียวกันนี้สามารถทำได้ด้วยTOP (0)ตัวอย่างเช่น:

select top (0) *
into Table2
from Table1;

หมายเหตุ : การSELECT INTOจะไม่ทำซ้ำดัชนีตารางข้อ จำกัด ทริกเกอร์หรือสคีมาของพาร์ติชัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.