2009-12-03 3 views

Trả lời

12

Bạn có thể sử dụng phụ truy vấn

SELECT a,b,c INTO NewTable 
FROM (SELECT a,b,c 
FROM TheTable 
WHERE a Is Null) 
+2

Tại sao lại sử dụng truy vấn phụ? tức là tại sao không thêm INTO vào truy vấn bên trong? – onedaywhen

+0

Lưu ý kết quả 'bảng' sẽ không có khóa, do đó không phải là bảng nào cả. – onedaywhen

9

Giống như vậy:

SELECT * 
INTO  NewTable 
FROM  OldTable 
+0

Không chắc chắn Access sẽ thực sự * thay thế * 'NewTable' trong trường hợp đó, nó có thể thực sự nối thứ vào bảng thay thế, sau đó hoàn toàn khớp với yêu cầu của người dùng khi tôi hiểu nó. – Romain

+0

@Romain Muller: Tại sao bạn không kích hoạt Truy cập và tìm ra câu trả lời cho câu hỏi của bạn, thay vì lẩm bẩm to về nó? –

+2

Trong thực tế, nếu bạn chạy SQL đó trong Access QBE, nó sẽ hỏi bạn nếu bạn muốn thay thế bảng hiện có. Nếu bạn chạy nó với DoCmd.RunSQL với SetWarnings ON, nó cũng sẽ nhắc bạn. Nếu bạn cố gắng thực hiện nó trong DAO, nó sẽ thất bại vì bảng đã tồn tại. Trong mọi trường hợp, nó sẽ thêm các bản ghi vào một bảng hiện có. –

0
Select * 
Into newtable 
From somequery 
1

Nếu bạn muốn làm điều đó thông qua giao diện người dùng, bạn cũng có thể:

A) Tạo và kiểm tra truy vấn chọn. Lưu nó.

B) Tạo truy vấn tạo bảng. Khi được hỏi những bảng nào sẽ hiển thị, hãy chọn tab truy vấn và truy vấn đã lưu của bạn.

C) Cho biết tên của bảng bạn muốn tạo.

D) Đến làm cho cà phê (tùy thuộc vào khẩu vị và kích thước của bảng)

3

Đầu tiên, tạo một bảng với các phím cần thiết, hạn chế, kiểm tra tên miền, tài liệu tham khảo , v.v. Sau đó, sử dụng cấu trúc INSERT INTO..SELECT để điền vào.

Không bị cám dỗ bởi các cấu trúc SELECT..INTO..FROM. Bảng kết quả sẽ không có khóa, do đó sẽ không thực sự là một bảng nào cả. Tốt hơn để bắt đầu với một bảng thích hợp, sau đó thêm dữ liệu, ví dụ: nó sẽ dễ dàng hơn để bẫy dữ liệu xấu.

Ví dụ về cách mọi thứ có thể sai với mệnh đề SELECT..INTO: nó có thể dẫn đến cột bao gồm giá trị NULL và sau khi sự kiện bạn có thể thay đổi cột thành NOT NULL, công cụ sẽ không thay thế NULLs, do đó bạn sẽ kết thúc bằng cột NOT NULL có chứa NULL s!

Đồng thời xem xét tạo bảng 'đã xem', ví dụ: sử dụng CREATE VIEW SQL DDL thay vì một bảng cơ sở.