Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Azt a partíciószámot adja vissza, amelybe particionálási oszlopértékek készlete leképezhető bármely megadott partíciófüggvényhez.
Transact-SQL szintaxis konvenciói
Szintaxis
[ database_name. ] $PARTITION.partition_function_name(expression)
Érvek
database_name
A partíciófüggvényt tartalmazó adatbázis neve.
partition_function_name
Annak a meglévő partíciófüggvénynek a neve, amelyre particionálási oszlopértékek vannak alkalmazva.
kifejezés
Egy kifejezésnek, amelynek adattípusának meg kell egyeznie, vagy implicit módon konvertálhatónak kell lennie a megfelelő particionálási oszlop adattípusára. Ez a paraméter lehet egy particionálási oszlop neve is, amely jelenleg részt vesz a partition_function_name.
Visszatérési típusok
Megjegyzések
$PARTITION egy int értéket ad vissza a 1 és a partíciófüggvény partícióinak száma között.
$PARTITION bármely érvényes érték partíciószámát adja vissza, függetlenül attól, hogy az érték jelenleg létezik-e a partíciófüggvényt használó particionált táblában vagy indexben.
Példák
Egy. Particionálási oszlopértékek készletének partíciószámának lekérése
Ez a példa létrehoz egy partíciófüggvényt RangePF1RANGE LEFT használatával, amely négy partícióra particionál egy táblát vagy indexet.
$PARTITION annak megállapítására szolgál, hogy a 10particionálási oszlopát képviselő RangePF1érték a tábla partíciós 1 kerül-e.
CREATE PARTITION FUNCTION RangePF1(INT)
AS RANGE LEFT
FOR VALUES (10, 100, 1000);
GO
SELECT $PARTITION.RangePF1 (10);
GO
B. A particionált tábla vagy index nem megfelelő partícióiban lévő sorok számának lekérése
Ez a példa bemutatja, hogyan használható $PARTITION az adatokat tartalmazó táblák egyes partícióiban lévő sorok számának visszaadására.
Jegyzet
A példa végrehajtásához először létre kell hoznia a partíciófüggvényt RangePF1 az előző példában szereplő kód használatával.
Hozzon létre egy partíciós sémát
RangePS1aRangePF1partíciófüggvényhez.CREATE PARTITION SCHEME RangePS1 AS PARTITION RangePF1 ALL TO ('PRIMARY'); GOHozzon létre egy táblát
dbo.PartitionTableaRangePS1partíciós sémában,col1particionálási oszlopként.CREATE TABLE dbo.PartitionTable ( col1 INT PRIMARY KEY, col2 CHAR (20) ) ON RangePS1 (col1); GOSzúrjon be négy sort a
dbo.PartitionTabletáblába. Ezek a sorok a partíciófüggvényRangePF1definíciója alapján kerülnek be a partíciókba:1és10a particionálási1,500és1000pedig a3.INSERT dbo.PartitionTable (col1, col2) VALUES (1, 'a row'), (10, 'another row'), (500, 'another row'), (1000, 'another row'); GOA
dbo.PartitionTablelekérdezése és a$PARTITION.RangePF1(col1)záradékGROUP BYhasználatával kérdezi le az adatokat tartalmazó partíciók sorainak számát.SELECT $PARTITION.RangePF1 (col1) AS Partition, COUNT(*) AS [COUNT] FROM dbo.PartitionTable GROUP BY $PARTITION.RangePF1 (col1) ORDER BY Partition; GO
Itt van az eredményhalmaz.
| Feloszt | GRÓF |
|---|---|
| 1 | 2 |
| 3 | 2 |
A rendszer nem ad vissza sorokat a 2partíciószámhoz, amely létezik, de nem tartalmaz adatokat.
C. Egy particionált tábla vagy index egy partíciójának összes sorát adja vissza
Az alábbi példa az PartitionTabletábla 3. partíciójában lévő összes sort adja vissza.
SELECT col1, col2
FROM dbo.PartitionTable
WHERE $PARTITION.RangePF1 (col1) = 3;
Itt van az eredményhalmaz.
| col1 | col2 |
|---|---|
500 |
másik sor |
1000 |
másik sor |