Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come utilizzare FILEGROUPPROPERTY() in SQL Server

In SQL Server puoi utilizzare FILEGROUPPROPERTY() funzione per restituire il valore della proprietà del filegroup per un nome e un valore del filegroup specificati. Il valore restituito è 1 o 0 (o NULL se l'input non è valido).

Per utilizzarlo, fornisci il nome del filegroup e il valore della proprietà che desideri restituire.

Esempio 1 – Query di base

Ecco un esempio da dimostrare.

USE WideWorldImporters;
SELECT FILEGROUPPROPERTY('PRIMARY', 'IsDefault') AS Result;

Risultato:

+----------+
| Result   |
|----------|
| 0        |
+----------+

Il valore di 0 significa che questo non è il filegroup predefinito per questo database.

Se cambio database, vedo che PRIMARY filegroup è il filegroup predefinito per quel database:

USE Music;
SELECT FILEGROUPPROPERTY('PRIMARY', 'IsDefault') AS Result;

Risultato:

Changed database context to 'Music'.
+----------+
| Result   |
|----------|
| 1        |
+----------+

Esempio 2 – Restituisci tutti i valori delle proprietà

Al momento della scrittura, FILEGROUPPROPERTY() accetta tre valori di proprietà.

Ecco un esempio che restituisce tutti e tre i valori delle proprietà per USERDATA filegroup.

SELECT 
  FILEGROUPPROPERTY('USERDATA', 'IsReadOnly') AS FG_1,
  FILEGROUPPROPERTY('USERDATA', 'IsUserDefinedFG') AS FG_2,
  FILEGROUPPROPERTY('USERDATA', 'IsDefault') AS FG_3;

Risultato:

+--------+--------+--------+
| FG_1   | FG_2   | FG_3   |
|--------+--------+--------|
| 0      | 1      | 1      |
+--------+--------+--------+

Esempio 3 – Filegroup inesistente

Ecco cosa succede se specifichi un filegroup che non esiste.

SELECT FILEGROUPPROPERTY('OOPS', 'IsDefault') AS Result;

Risultato:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Esempio 4 – Valore della proprietà non valido

Otteniamo lo stesso risultato quando il filegroup è corretto, ma specifichiamo un valore di proprietà non valido.

SELECT FILEGROUPPROPERTY('USERDATA', 'OOPS') AS Result;

Risultato:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Restituisci il nome del filegroup

Se hai l'ID del filegroup ma non il suo nome, puoi usare FILEGROUP_NAME() per restituire il nome di un filegroup in base al suo ID.

Restituisci tutti i filegroup

Se vuoi restituire tutti filegroup per un determinato database, vedere Come restituire tutti i filegroup in SQL Server.

Crea un filegroup

Se vuoi creare un nuovo filegroup, vedi Come aggiungere un filegroup in SQL Server.