Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Accolades en T-SQL

Ce sont des séquences d'échappement ODBC. Voir Séquences d'échappement de date, d'heure et d'horodatage pour plus de détails.

Il existe également une syntaxe similaire pour les identifiants uniques

SELECT {guid '00000000-0000-0000-0000-000000000000'} ,

ainsi que des appels de procédure et d'autres constructions détaillées sur ce lien.

En ce qui concerne le reste de votre question, je ne connais aucun moyen de traiter un littéral entier comme un bigint ou de toute ressource particulière qui répertorie toutes les manières d'influencer la manière dont les littéraux sont affectés aux types de données par SQL Server. Quelques façons sont ci-dessous.

;WITH cte(thing) AS
(
SELECT CAST(1 AS SQL_VARIANT) UNION ALL
SELECT $1 UNION ALL
SELECT 1e0 UNION ALL
SELECT 1.0000 UNION ALL
SELECT 2147483648 UNION ALL 
SELECT {ts '2011-09-15 01:23:56.123'}  UNION ALL
SELECT {d '2011-09-15'} UNION ALL
SELECT { t '13:33:41' }  UNION ALL
SELECT {guid '00000000-0000-0000-0000-000000000000'} UNION ALL
SELECT 'Foo' UNION ALL
SELECT N'Foo'
)
SELECT thing, 
       sql_variant_property(thing,'basetype') AS basetype,
       sql_variant_property(thing,'precision') AS precision, 
       sql_variant_property(thing,'scale') AS scale, 
       sql_variant_property(thing,'maxlength') AS maxlength
FROM cte

Retours

thing                          basetype            precision   scale  maxlength
------------------------------ ------------------- ----------- ------ ---------
1                              int                 10          0      4
1.00                           money               19          4      8
1                              float               53          0      8
1.0000                         numeric             5           4      5
2147483648                     numeric             10          0      5
2011-09-15 01:23:56.123        datetime            23          3      8
2011-09-15 00:00:00.000        datetime            23          3      8
2011-09-15 13:33:41.000        datetime            23          3      8
00000000-0000-0000-0000-000000 uniqueidentifier    0           0      16
Foo                            varchar             0           0      3
Foo                            nvarchar            0           0      6