sql >> Database teknologi >  >> RDS >> Sqlserver

Krøllede seler i T-SQL

Disse er ODBC-escape-sekvenser. Se Escape-sekvenser for dato, klokkeslæt og tidsstempel for flere detaljer.

Der er også lignende syntaks for unikke identifikatorer

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

samt procedurekald og nogle andre konstruktioner, der er detaljeret fra det link.

Med hensyn til resten af ​​dit spørgsmål er jeg ikke bekendt med nogen måde at få et heltal bogstaveligt behandlet som en bigint eller af en bestemt ressource, der viser alle måder, hvorpå man kan påvirke, hvordan bogstaver tildeles datatyper af SQL Server. Nogle måder er nedenfor.

;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

Returnerer

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. Sådan fungerer SESSION_CONTEXT() i SQL Server

  2. listevisning viser data fra databasen i Android

  3. Dynamisk SQL (oversætter tabelnavn som parameter)

  4. Hvad er den perfekte værktøjskasse til PL/SQL-udvikling?