recognized - string_agg sql server 2008
Aparatos de curly en T-SQL (1)
Estas son secuencias de escape ODBC. Consulte Fecha, Hora y Secuencias de escape de la marca de tiempo para obtener más detalles.
También hay una sintaxis similar para identificadores únicos
SELECT {guid ''00000000-0000-0000-0000-000000000000''}
,
así como las llamadas a procedimientos y algunas otras construcciones detalladas en ese enlace.
Con respecto al resto de su pregunta, no conozco ninguna forma de que un literal entero sea tratado como un bigint
o de cualquier recurso en particular que enumere todas las formas de influir en la forma en que los literales son asignados por el servidor de datos. Algunas formas están abajo.
;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
Devoluciones
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
Me he encontrado con el siguiente t-sql:
SELECT {d''9999-12-31''}
Lo que devuelve 9999-12-31 00:00:00.000
.
Esto parece estar convirtiendo el tipo del literal de cadena a un DATETIME
. No puedo encontrar ninguna documentación en esta sintaxis y me pregunto si hay variaciones, por ejemplo, si tengo un literal 1
pero quiero representarlo en un BIGINT
sin usar CONVERT()
/ CAST()
.
¿Alguien puede proporcionar más información sobre esta sintaxis? Gracias.