Say table1
và table2
đã tồn tại, là có bất kỳ sự khác biệt giữa các truy vấn nàySQL Server 'select * vào' so 'chèn vào ..select *
query1: -
select * into table1 from table2 where 1=1
query2: -
insert into table1 select * from table2
Say table1
và table2
đã tồn tại, là có bất kỳ sự khác biệt giữa các truy vấn nàySQL Server 'select * vào' so 'chèn vào ..select *
query1: -
select * into table1 from table2 where 1=1
query2: -
insert into table1 select * from table2
select * into table1 from table2 where 1=1
tạo bảng1 và chèn các giá trị của bảng 2 vào chúng. Vì vậy, nếu bảng đã được tạo ra tuyên bố đó sẽ đưa ra một lỗi.
Chỉ insert into table1 select * from table2
chèn giá trị của bảng 2 vào bảng 1.
Tôi đã không nhận thức được lỗi sẽ được tạo ra bởi truy vấn-1 nếu bảng tồn tại. Cảm ơn nhiều ! –
Đầu tiên (SELECT INTO
) sẽ tạo và điền bảng mới thứ hai (INSERT... SELECT
) chèn vào bảng hiện có.
Trong phiên bản SQL Server trước năm 2008, phiên bản đầu tiên có thể được ghi nhật ký tối thiểu và phiên bản thứ hai không phải là this is no longer true.
Trong query2, bảng table1
phải tồn tại trước khi chạy lệnh
Trong query1, table1
sẽ được tạo ra hoặc một lỗi sẽ được ném ra nếu nó đã tồn tại
select * into table1 from table2 where 1=1
Các truy vấn trên yêu cầu rằng bảng KHÔNG tồn tại. Bạn không cần phải chỉ định các cột vì tất cả các cột được tạo ra khi chúng được lấy ra từ bảng nguồn.
insert into table1 select * from table2
Đối với truy vấn trên, bạn cần bảng EXISTING1. Các cột trong cả hai bảng cũng phải theo đúng thứ tự, nếu không bạn cần cung cấp danh sách cột cho cả hai bảng.
INSERT INTO TABLE_A SELECT * FROM TABLE_B
Câu thường được sử dụng, được sử dụng để chèn các giá trị của bảng vào bảng khác. Các cột được chọn cũng có thể được chèn bằng cách sử dụng này.
SELECT * INTO TABLE_A FROM TABLE_B
sẽ tạo ra một TABLE_A mới điền bằng giá trị của table_b
thể trùng lặp của [INSERT INTO vs SELECT INTO] (http://stackoverflow.com/questions/6947983/insert-into-vs-select -into) và một số người khác – gbn