Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat Tabel Sementara di SQL Server

Di SQL Server, tabel sementara dibuat menggunakan CREATE TABLE yang sama sintaks sebagai tabel biasa. Perbedaannya adalah bahwa nama tabel sementara diawali dengan satu atau dua tanda angka (# ), bergantung pada apakah itu tabel sementara lokal atau tabel sementara global:

  • Tabel sementara lokal diawali dengan tanda angka tunggal (# )
  • Tabel sementara global diawali dengan tanda angka ganda (## )

Contoh 1 – Membuat Tabel Sementara Lokal

Berikut ini contoh membuat tabel sementara lokal:

CREATE TABLE #Cats (
    CatId int PRIMARY KEY,
    CatName varchar(70)
);

Nama yang Anda tentukan untuk tabel sementara lokal maksimal 116 karakter. Jenis tabel lain dapat terdiri dari 128 karakter, tetapi tabel sementara lokal secara otomatis ditambahkan dengan akhiran numerik yang dihasilkan sistem.

Contoh 2 – Membuat Tabel Sementara Global

Berikut ini contoh membuat tabel sementara global:

CREATE TABLE ##Cats (
    CatId int PRIMARY KEY,
    CatName varchar(70)
);

Nama tabel sementara global maksimal 128 karakter. SQL Server tidak menambahkan sufiks numerik yang dihasilkan sistem ke tabel sementara global seperti yang dilakukan untuk tabel sementara lokal, sehingga Anda dapat menggunakan ruang penuh.

Contoh 3 – Lihat Tabel Sementara

Saya dapat menjalankan kueri berikut untuk melihat tabel sementara yang baru saya buat.

SELECT name
FROM tempdb.sys.tables
WHERE name LIKE '#Cats%'
OR name = '##Cats';

Hasil:

+----------------------------------------------------------------------------------------------------------------------------------+
| name                                                                                                                             |
|----------------------------------------------------------------------------------------------------------------------------------|
| ##Cats                                                                                                                           |
| #Cats_______________________________________________________________________________________________________________000000000018 |
+----------------------------------------------------------------------------------------------------------------------------------+

Kita dapat melihat bahwa tabel sementara lokal telah menambahkan sufiks numerik yang dihasilkan sistem, dan inilah mengapa kueri saya menggunakan LIKE operator untuk tabel itu.

Contoh 4 – Sesi Baru

Jika saya membuka sesi baru, buat tabel sementara lokal dengan nama yang sama (Kucing), lalu jalankan kueri ini lagi, saya mendapatkan ini:

+----------------------------------------------------------------------------------------------------------------------------------+
| name                                                                                                                             |
|----------------------------------------------------------------------------------------------------------------------------------|
| ##Cats                                                                                                                           |
| #Cats_______________________________________________________________________________________________________________000000000018 |
| #Cats_______________________________________________________________________________________________________________000000000019 |
+----------------------------------------------------------------------------------------------------------------------------------+

Jadi beberapa sesi dapat membuat tabel lokal dengan nama yang sama karena SQL Server memodifikasi nama tersebut dengan menambahkan sufiks.

Contoh 5 – Sesi yang Sama

Namun, jika saya mencoba membuat tabel sementara lokal lagi di sama sesi, saya mendapatkan ini:

Msg 2714, Level 16, State 6, Line 1
There is already an object named '#Cats' in the database.

Dan jika saya membuka sesi lain, saya berhasil, dan ketika saya menanyakan tempdb.sys.tables Saya mengerti ini:

+----------------------------------------------------------------------------------------------------------------------------------+
| name                                                                                                                             |
|----------------------------------------------------------------------------------------------------------------------------------|
| ##Cats                                                                                                                           |
| #Cats_______________________________________________________________________________________________________________000000000018 |
| #Cats_______________________________________________________________________________________________________________000000000019 |
| #Cats_______________________________________________________________________________________________________________00000000001B |
+----------------------------------------------------------------------------------------------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memperbaiki "Pernyataan ALTER TABLE SWITCH gagal"

  2. T-SQL Lewati Ambil Prosedur Tersimpan

  3. Ambil data dari prosedur tersimpan yang memiliki beberapa set hasil

  4. 2 Cara Mendaftar Semua Fungsi Bernilai Tabel di Database SQL Server

  5. Bagaimana cara terhubung ke mssql menggunakan pdo melalui PHP dan Linux?