Lệnh SELECT INTO trong SQL Server

Trong SQL Server (Transact-SQL), lệnh SELECT INTO được dùng để tạo bảng từ 1 bảng sẵn có bằng cách sao chép các cột từ bảng ban đầu.

Cần nhớ là khi tạo bảng bằng cách này thì bảng mới cũng sẽ được điền các bản ghi từ bảng cũ (dựa trên lệnh SELECT).

Cú pháp lệnh SELECT INTO

SELECT bieu_thuc INTO bang_moi FROM bang [WHERE dieu_kien];

Tên biến hoặc giá trị biến

bieu_thuc

Cột hoặc giá trị muốn lấy.

bang_moi

Bảng mới tạo bằng biểu thức đã chọn và các định nghĩa liên quan. (bang_moi hiện không có).

bang

Bảng muốn lấy bản ghi từ đó. Phải có ít nhất 1 bảng trong mệnh đề FROM.

WHERE dieu_kien

Tùy chọn. Điều kiện phải đáp ứng để bản ghi được chọn.

Lưu ý

Khi dungfl ệnh SELECT INTO trong SQL Server, bang_moi phải chưa từng tồn tại trước đó. Nếu có thì lệnh SELECT INTO sẽ bị lỗi.

Ví dụ lệnh SELECT INTO

SELECT nhanvien_id, ho, ten INTO danhba FROM nhanvien WHERE nhanvien_id < 1000;

Ở ví dụ này, lệnh SELECT INTO sẽ chọn ID, họ và tên của nhân viên trong bảng nhanvien và chép các trường này cũng với định nghĩa sang 1 bảng danhba mới.

Nếu có bản ghi trong bảng nhanvien thì bảng danhba mới cũng sẽ có các bản ghi được trả về từ lệnh SELECT.

Nếu muốn đổi tên cột trong bảng mới thay vì dùng tên cũ, bạn có thể đặt bí danh ALIAS cho cột trong lệnh SELECT INTO.

SELECT nhanvien_id AS danhba_id, ho, ten INTO danhba FROM nhanvien WHERE nhanvien_id < 1000;

Ở ví dụ trên, ta không muốn cột đầu tiên trong bảng danhba mới là nhanvien_id nên tốt hơn là đổi tên cột đầu tiên thành danhba_id trong bảng danhba. Việc này thực hiện bằng cách đặt bí danh cho cột nhanvien_id như dưới đây.

nhanvien_id AS danhba_id