Lý do bạn đặt WHERE 1=2
mệnh đề trong SELECT INTO
truy vấn đó là để tạo một bản sao trường của bảng hiện có không có dữ liệu .
Nếu bạn đã làm điều này:
select *
into Table2
from Table1
Table2
sẽ là một bản sao chính xác Table1
, bao gồm các hàng dữ liệu. Nhưng nếu bạn không muốn dữ liệu chứa trong Table1
và bạn chỉ muốn cấu trúc bảng, bạn đặt một WHERE
mệnh đề để lọc tất cả dữ liệu.
BáoSELECT INTO
giá tham khảo BOL :
CHỌN INTO tạo một bảng mới trong nhóm tệp mặc định và chèn các hàng kết quả từ truy vấn vào đó.
Nếu WHERE
mệnh đề của bạn không có hàng kết quả, sẽ không có hàng nào được chèn vào bảng mới: Do đó, bạn kết thúc với lược đồ trùng lặp của bảng gốc không có dữ liệu (sẽ là kết quả mong muốn trong trường hợp này).
Hiệu quả tương tự có thể đạt được với TOP (0)
, ví dụ:
select top (0) *
into Table2
from Table1;
Lưu ý : SELECT INTO
Sẽ không trùng lặp các chỉ mục, ràng buộc, kích hoạt hoặc lược đồ phân vùng của bảng nguồn.