Global Temporary Table (##) คืออะไร?
ตารางชั่วคราวระดับ Global สร้างใน session ใด session หนึ่ง แต่มองเห็นและเข้าถึงได้จาก ทุก session ใน SQL Server เดียวกัน จะถูกลบอัตโนมัติเมื่อ ไม่มี session ใดอ้างอิงถึงมันอีกต่อไป
รูปแบบคำสั่ง
CREATE TABLE ##table_name (
col1 data_type [NULL | NOT NULL],
col2 data_type [NULL | NOT NULL],
...
);
คุณสมบัติสำคัญ
- ชื่อขึ้นต้นด้วย
##(เช่น##nhanvien) - เก็บในฐานข้อมูล
tempdb - มองเห็นข้าม session/connection
- หายไปเองเมื่อ session สร้างจบ และไม่มี session ไหนใช้งานอยู่
ตัวอย่าง
CREATE TABLE ##nhanvien (
id_nhanvien INT PRIMARY KEY,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY
);
สร้างตาราง ##nhanvien 4 คอลัมน์ PK = id_nhanvien
ความแตกต่างจาก Local Temp Table (#): Local (#) มองเห็นเฉพาะ session ที่สร้างเท่านั้น Global (##) มองเห็นทุก session