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