Một trong các kiến thức quan trọng của môn quản trị cơ sở dữ liệu SQL Server mà các bạn cần phải học đó là thao tác với bảng tạm TEMPORARY nữa. Nếu các bạn chưa hiểu rõ về bảng tạm trong SQL là gì, cách sử dụng như thế nào thì hãy theo dõi ngay sau đây!
Mục lục
1. Temporary Tables trong SQL là gì?
Đây là một cấu trúc dạng bảng đặc biệt. Chúng được lưu trữ tạm trên SQL Server. Người ta dùng bảng tạm chủ yếu để lưu lại kết quả của các câu truy vấn SELECT khi cần phải sử dụng nó nhiều lần. Có 2 loại bảng tạm là Local Temporary Table và Global Temporary Table.
Trên thực tế, đây cũng là một loại bảng và sở hữu đầy đủ những tính chất mà một bảng cần có. Các bạn có thể thực hiện mọi thác tác như SELECT hay INSERT trên bảng tạm này như bình thường.
Dưới đây là cách tạo bảng tam trong SQL và thêm dữ liệu (với bảng tạm Local Temporary Table):
1.1. Sử dụng INSERT INTO
Đây là hàm được sử dụng để tạo bảng tạm trong SQL. Cách dùng như sau:
SELECT select_list INTO temporary_table FROM table_name …. Khi đặt tên cho bảng tạm phải bắt đầu bằng dấu thăng (#), ví dụ: SELECT product_name, list_price INTO #trek_products --- temporary table FROM production.products WHERE brand_id = 9;<\pre> Theo ví dụ này chúng ta sẽ tạo được 1 bảng tạm có tên #trek_products. Trong bảng gồm 2 cột là product_name và list_name. Kết quả trả về từ câu truy vấn chính là dữ liệu của bảng. Để xem bảng các bạn mở công cụ SSMS và chọn: System Databases > tempdb > Temporary Tables: Ở tên bảng tạm có hậu tố ở phía sau nhằm mục đích tránh hiện tượng bảng bị trùng tên khi cùng lưu trữ trong một database tempdb.
1.2. Sử dụng CREATE TABLE
Khi tạo bảng tạm trong SQL server bằng câu lệnh CREATE TABLE thì bảng được tạo sẽ là bảng rỗng. Muốn thêm dữ liệu phải sử dụng câu lệnh INSERT. Cụ thể:
CREATE TABLE #haro_products ( product_name VARCHAR(MAX), list_price DEC(10,2) );
Như vậy chúng ta sẽ có bảng tạm tên #haro_products. Trong bảng có 2 cột là product_name và list_price. Muốn thêm dữ liệu cần dùng hàm:
INSERT INTO #haro_products SELECT product_name, list_price FROM production.products WHERE brand_id = 2;
Dù sau này bảng gốc thay đổi dữ liệu cũng không làm ảnh hưởng tới dữ liệu trong bảng tạm.
2. Global Temporary Tables
Local Temporary Table chỉ tồn tại trong một phiên làm việc. Để kiểm tra điều này có đúng không các bạn có thể mở connection khác và dùng câu lệnh:
SELECT * FROM #haro_products;
Kết quả trả về lỗi: Invalid object name ‘#haro_products’.
Trường hợp muốn dùng bảng tạm cho nhiều phiên làm việc khác nhau thì cần chuyển thành Global Temporary Table bằng cách thêm 2 dấu (#) tại tên table. Cụ thể:
CREATE TABLE ##heller_products ( product_name VARCHAR(MAX), list_price DEC(10,2) ); INSERT INTO ##heller_products SELECT product_name, list_price FROM production.products WHERE brand_id = 3;
3. Xóa Temporary Tables
Cụ thể:
DROP TABLE ##table_name;
Trên đây là các thông tin về bảng tạm trong SQL Server. Hy vọng những thông tin này sẽ giúp các biết cách thao tác với bảng tạm và sử dụng bảng tạm hiệu quả hơn.