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

Cari Tahu Partisi Mana Nilai yang Diberikan Akan Dipetakan ke dalam SQL Server (T-SQL)

Jika Anda memiliki tabel atau indeks yang dipartisi di SQL Server, dan Anda ingin menentukan ke partisi mana nilai tertentu akan dipetakan, Anda dapat melakukannya dengan baik dan cepat dengan $PARTITION fungsi sistem.

Yang perlu Anda ketahui hanyalah nama fungsi partisi (dan tentu saja, nilai yang Anda minati).

Contoh

Berikut ini contoh untuk didemonstrasikan.

SELECT $PARTITION.MoviesPartitionFunction(5);

Hasil:

+--------------------+
| (No column name)   |
|--------------------|
| 2                  |
+--------------------+

Dalam hal ini, nilai 5 akan masuk ke nomor partisi 2.

Mari kita coba beberapa nilai lainnya.

SELECT 
    $PARTITION.MoviesPartitionFunction(-100) AS [-100],
    $PARTITION.MoviesPartitionFunction(100) AS [100],
    $PARTITION.MoviesPartitionFunction(1000) AS [1000],
    $PARTITION.MoviesPartitionFunction(100000) AS [100000];

Hasil:

+--------+-------+--------+----------+
| -100   | 100   | 1000   | 100000   |
|--------+-------+--------+----------|
| 1      | 2     | 3      | 4        |
+--------+-------+--------+----------+

Kueri Lintas-Database

Anda juga dapat mengawali nama database untuk mengkueri database yang berbeda.

SELECT MovieDb.$PARTITION.MoviesPartitionFunction(5);

Konversi Jenis Data

Tipe data dari nilai yang Anda berikan harus cocok atau secara implisit dapat dikonversi ke tipe data kolom partisi yang sesuai.

Jika tidak, Anda mungkin akan mendapatkan error 245.

SELECT $PARTITION.MoviesPartitionFunction('Hey!');

Hasil:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'Hey!' to data type int.

Perhatikan bahwa $PARTITION mengembalikan nomor partisi untuk setiap nilai yang valid, terlepas dari apakah nilai saat ini ada dalam tabel yang dipartisi atau indeks yang menggunakan fungsi partisi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat Database di SQL Server (T-SQL)

  2. Bagaimana cara mendekripsi kata sandi dari SQL server?

  3. SQL Server - Cara terbaik untuk mendapatkan identitas baris yang disisipkan?

  4. Buat Fungsi Bernilai Tabel Sebaris (ITVF) di SQL Server

  5. Bagaimana cara menghapus tag HTML dari string di SQL Server?