sql_variant to typ danych, który pozwala przechowywać wartości różnego typu (do 8000 bajtów) w kolumnie lub zmiennej.
Możesz wprowadzić dowolny typ danych oprócz:
- varchar(max)
- varbinary(max)
- nvarchar(max)
- xml
- text
- ntext
- image
- rowversion (timestamp)
- geography
- hierarchyid
- geometry
- datetimeoffset
- User-defined types
-- kolumna typu sql variant pozwala przechowywac roznego typu wartosci
DROP TABLE IF EXISTS #TEST
CREATE TABLE #TEST (
colA sql_variant,
colB INT)
INSERT INTO #TEST select CAST(101.1 as decimal(8,2)), 1
INSERT INTO #TEST select CAST('Test123' as varchar(10)), 2
INSERT INTO #TEST select cast(getdate() as datetime),3
SELECT
colA,
SQL_VARIANT_PROPERTY(colA,'BaseType') AS 'Base Type',
SQL_VARIANT_PROPERTY(colA,'Precision') AS 'Precision',
SQL_VARIANT_PROPERTY(colA,'Scale') AS 'Scale',
SQL_VARIANT_PROPERTY(colA,'TotalBytes') AS 'TotalBytes',
SQL_VARIANT_PROPERTY(colA,'Collation') AS 'Collation',
SQL_VARIANT_PROPERTY(colA,'MaxLength') AS 'MaxLength'
FROM
#TEST
Wybór wierszy |