2010-04-22 41 views
14

Tôi đang cố gắng chèn dữ liệu từ một trong các bảng hiện có của tôi vào một bảng hiện có khác."chọn * vào bảng" Nó có hoạt động để chèn dữ liệu vào bảng hiện có

Có thể chèn dữ liệu vào bất kỳ bảng hiện có nào bằng cách sử dụng truy vấn select * into. Tôi nghĩ rằng nó có thể được thực hiện bằng cách sử dụng union nhưng trong trường hợp đó tôi cần phải ghi lại tất cả dữ liệu của bảng hiện tại của tôi vào bảng tạm thời, sau đó thả bảng đó và cuối cùng áp dụng union để chèn tất cả bản ghi vào cùng một bảng

ví dụ:

select * into #tblExisting from tblExisting 
drop table tblExisting 
select * into tblExisting from #tblExisting union tblActualData 

Đây tblExisting là bảng mà tôi thực sự muốn để lưu trữ tất cả dữ liệu tblActualData là bảng từ nơi dữ liệu sẽ được nối vào tblExisting.

Đó là phương pháp phù hợp. Chúng tôi có một số giải pháp thay thế khác không?

+0

liên quan: http://stackoverflow.com/questions/4101739 –

Trả lời

4

Không, bạn không thể sử dụng SELECT INTO để chèn dữ liệu vào một bảng hiện có.

Các documentation làm cho điều này rất rõ ràng:

SELECT ... INTO tạo ra một bảng mới trong filegroup mặc định và chèn các hàng kết quả từ truy vấn vào nó.

Bạn thường muốn tránh sử dụng SELECT INTO trong sản xuất vì nó mang lại cho bạn rất ít kiểm soát như thế nào bàn được tạo ra, và có thể dẫn đến tất cả các loại khóa khó chịu và vấn đề hiệu suất khác. Bạn nên tạo lược đồ một cách rõ ràng và sử dụng INSERT - ngay cả đối với các bảng tạm thời.

0

@Ryan Chase Bạn có thể làm điều này bằng cách chọn tất cả các cột bằng *? Có!

INSERT INTO yourtable2 SELECT * FROM yourtable1

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Bạn có thể [tìm kiếm các câu hỏi tương tự] (// stackoverflow.com/search) hoặc tham khảo các câu hỏi có liên quan và được liên kết ở phía bên phải của trang để tìm câu trả lời. Nếu bạn có câu hỏi liên quan nhưng khác, [hỏi một câu hỏi mới] (// stackoverflow.com/questions/ask) và bao gồm một liên kết đến câu hỏi này để giúp cung cấp ngữ cảnh. Xem: [Đặt câu hỏi, nhận câu trả lời, không phiền nhiễu] (// stackoverflow.com/tour) – Bugs

Các vấn đề liên quan