stuff string_agg recognized not name hana functions concatenate built sql sql-server tsql syntax

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.