Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

5 Cara Membuat Daftar Tabel Sementara menggunakan T-SQL

Di SQL Server, Anda dapat menggunakan salah satu dari lima cara berikut untuk mengembalikan daftar tabel sementara menggunakan Transact-SQL.

Ini mengembalikan tabel sementara lokal dan global.

Opsi 1 – sys.tables

sys.tables tampilan katalog sistem dirancang khusus untuk mengembalikan informasi tabel.

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

Seperti semua tampilan di halaman ini, mengingat kami menginginkan informasi tentang sementara tabel, kita perlu menanyakan tampilan ini di tempdb basis data. Kita dapat melakukannya dengan beralih ke database itu terlebih dahulu (sehingga menjadi database kita saat ini), atau mengkualifikasi kueri kita dengan nama database.

Dalam contoh ini, saya mengkualifikasikan kueri dengan nama database.

Opsi 2 – sys.objects

Anda juga dapat menggunakan sys.objects tampilan katalog sistem. Jika Anda memilih opsi ini, Anda harus memfilternya menurut jenisnya sehingga hanya tabel pengguna yang ditampilkan.

SELECT name 
FROM tempdb.sys.objects
WHERE type = 'U';

U singkatan dari "Tabel Pengguna". Cara alternatif untuk melakukannya adalah dengan menggunakan WHERE type_desc = 'USER_TABLE' .

Opsi 3 – INFORMATION_SCHEMA.TABLES

Jika Anda menginginkan opsi standar ANSI, gunakan INFORMATION_SCHEMA.TABLES melihat. Jika Anda memilih opsi ini, Anda juga harus memfilternya menurut jenisnya sehingga hanya “tabel dasar” yang ditampilkan.

SELECT TABLE_NAME
FROM TempDB.INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'Base Table';

Opsi 4 – sp_tables

Jika Anda mencari opsi prosedur tersimpan, sp_tables prosedur tersimpan akan berhasil.

USE tempdb;
EXEC sp_tables '#%';

Anda juga dapat secara eksplisit memasukkan nama argumen.

USE tempdb;
EXEC sp_tables 
  @table_name = '#%',
  @table_owner = 'dbo',
  @table_qualifier = 'tempdb',
  @table_type = "'TABLE'",
  @fUsePattern = 1;

Anda akan melihat bahwa saya beralih ke tempdb sebelum menjalankan prosedur ini, meskipun saya menyediakan database sebagai salah satu argumen. Ini sebenarnya diperlukan. @table_qualifier argumen harus cocok dengan database saat ini.

Perhatikan juga bahwa @fUsePattern pola harus 1 dalam hal ini, karena saya menggunakan operator wildcard dalam nama tabel. Menyetelnya ke 1 memungkinkan pencocokan pola. Menyetelnya ke 0 akan menonaktifkan pencocokan pola.

Opsi 5 – objek dbo.sys

Ini mungkin tidak boleh menjadi pilihan, tetapi saya tetap akan mencantumkannya. dbo.sysobjects view hanya disertakan dalam SQL Server untuk kompatibilitas mundur. Itu telah ditandai untuk dihentikan dan Microsoft menyarankan untuk tidak menggunakannya. Jika Anda menemukannya di kode Anda, mungkin pertimbangkan untuk mengubahnya ke salah satu opsi sebelumnya.

Bagaimanapun, inilah tampilannya:

SELECT name
FROM tempdb..sysobjects
WHERE name LIKE '#%';

Jika Anda bertanya-tanya untuk apa titik ganda itu (.. ), ini adalah cara cepat untuk menentukan skema default. Dalam hal ini, skema default adalah dbo , jadi kita juga bisa menulis sebagai berikut:

SELECT name
FROM tempdb.dbo.sysobjects
WHERE name LIKE '#%';

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perancangan Model Data Sistem Pemesanan Kamar Hotel

  2. Apa itu Pengujian Basis Data dan Bagaimana Melakukannya?

  3. Menggunakan Trace Flag 3226 untuk Menekan Log Backup Logging

  4. Kait DBCC_OBJECT_METADATA

  5. Performa Selalu Terenkripsi:Tindak Lanjut