sql >> Database >  >> RDS >> Sqlserver

Retourneer het basisgegevenstype van een SQL_Variantwaarde in SQL Server

In SQL Server kunt u de SQL_VARIANT_PROPERTY() functie om basisgegevenstype-informatie terug te geven van een sql_variant waarde.

De functie accepteert twee argumenten:de sql_variant waarde en de eigenschap waarvoor informatie moet worden verstrekt.

Voorbeeld 1 – Basisgebruik

Hier is een voorbeeld dat het basisconcept en gebruik demonstreert.

DECLARE @var sql_variant = 'Hey!';
SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;

Resultaat:

+------------+
| BaseType   |
|------------|
| varchar    |
+------------+

In dit geval is het basistype varchar .

Dit gebeurt er als ik de waarde in een ander type verander:

DECLARE @var sql_variant = $1.50;
SELECT SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType;

Resultaat:

+------------+
| BaseType   |
|------------|
| money      |
+------------+

Deze keer is het basistype geld .

Voorbeeld 2 – Andere eigenschappen

Op het moment van schrijven zijn er zes mogelijke argumenten voor deze functie. Met andere woorden, u kunt informatie krijgen over zes verschillende eigenschappen van de doorgegeven waarde.

Hier is een voorbeeld dat alle zes gebruikt:

DECLARE @var sql_variant = SYSDATETIME();
SELECT 
  SQL_VARIANT_PROPERTY(@var, 'BaseType') AS BaseType,
  SQL_VARIANT_PROPERTY(@var, 'Precision') AS Precision,
  SQL_VARIANT_PROPERTY(@var, 'Scale') AS Scale,
  SQL_VARIANT_PROPERTY(@var, 'TotalBytes') AS TotalBytes,
  SQL_VARIANT_PROPERTY(@var, 'Collation') AS Collation,
  SQL_VARIANT_PROPERTY(@var, 'MaxLength') AS MaxLength;

Resultaat:

+------------+-------------+---------+--------------+-------------+-------------+
| BaseType   | Precision   | Scale   | TotalBytes   | Collation   | MaxLength   |
|------------+-------------+---------+--------------+-------------+-------------|
| datetime2  | 27          | 7       | 11           | NULL        | 8           |
+------------+-------------+---------+--------------+-------------+-------------+

  1. Migreren van DB2 naar PostgreSQL - Wat u moet weten

  2. Basisprincipes van buitenlandse sleutels in MySQL?

  3. De beste manier om periodiek Oracle-query's uit te voeren

  4. Belangrijkste functies om naar te zoeken in een SQL Server Monitoring Tool