вторник, 26 марта 2013 г.

Как посмотреть свойства значения, которое содержится в переменной типа SQL_VARIANT


DECLARE @VAR SQL_VARIANT

SET @VAR = N'12345' -- Содержит строку
SELECT
    'Value' AS N'Свойство', @VAR AS N'Значение'
    UNION ALL
SELECT
    'BaseType', SQL_VARIANT_PROPERTY(@VAR, 'BaseType')
    UNION ALL
SELECT
    'Precision', SQL_VARIANT_PROPERTY(@VAR, 'Precision')
    UNION ALL
SELECT
    'Scale', SQL_VARIANT_PROPERTY(@VAR, 'Scale')
    UNION ALL
SELECT
    'TotalBytes', SQL_VARIANT_PROPERTY(@VAR, 'TotalBytes')
    UNION ALL
SELECT
    'Collation', SQL_VARIANT_PROPERTY(@VAR, 'Collation')
    UNION ALL
SELECT
    'MaxLength', SQL_VARIANT_PROPERTY(@VAR, 'MaxLength')
    UNION ALL
SELECT
    'DATALENGTH', DATALENGTH(@VAR)

SET @VAR = 12345.12345 -- Содержит Decimal
SELECT
    'Value' AS N'Свойство', @VAR AS N'Значение'
    UNION ALL
SELECT
    'BaseType', SQL_VARIANT_PROPERTY(@VAR, 'BaseType')
    UNION ALL
SELECT
    'Precision', SQL_VARIANT_PROPERTY(@VAR, 'Precision')
    UNION ALL
SELECT
    'Scale', SQL_VARIANT_PROPERTY(@VAR, 'Scale')
    UNION ALL
SELECT
    'TotalBytes', SQL_VARIANT_PROPERTY(@VAR, 'TotalBytes')
    UNION ALL
SELECT
    'Collation', SQL_VARIANT_PROPERTY(@VAR, 'Collation')
    UNION ALL
SELECT
    'MaxLength', SQL_VARIANT_PROPERTY(@VAR, 'MaxLength')
    UNION ALL
SELECT
    'DATALENGTH', DATALENGTH(@VAR)