sql >> Databasteknik >  >> RDS >> Sqlserver

Lockiga hängslen i T-SQL

Dessa är ODBC-flyktsekvenser. Se Escape-sekvenser för datum, tid och tidsstämpel för mer information.

Det finns också liknande syntax för unika identifierare

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

samt proceduranrop och några andra konstruktioner som är detaljerade från den länken.

När det gäller resten av din fråga är jag inte medveten om något sätt att få ett heltals bokstavligt tal behandlat som en bigint eller av någon särskild resurs som listar alla sätt att påverka hur bokstavsdata tilldelas datatyper av SQL Server. Några sätt finns nedan.

;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

Retur

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



  1. 5 sätt att räkna antalet användardefinierade tabeller i en SQL Server-databas

  2. lagra arabiska i SQL-databas

  3. Hur AT TIME ZONE fungerar i PostgreSQL

  4. Hantera stora transaktioner med strömmande replikering och MariaDB 10.4