Diferencias de T-SQL en Babelfish
A continuación, encontrará una tabla de la funcionalidad de T-SQL compatible en la versión actual de Babelfish con algunas notas sobre las diferencias en el comportamiento con respecto al de SQL Server.
Para obtener más información acerca de la compatibilidad con versiones secundarias, consulte Funcionalidades compatibles con Babelfish por versión. Para obtener información acerca de las características no compatibles actualmente, consulte Funcionalidades no compatibles con Babelfish.
Babelfish está disponible con Aurora PostgreSQL-Compatible Edition. Para obtener más información sobre las versiones de Babelfish, consulte las Notas de la versión de Aurora PostgreSQL.
Funcionalidad o sintaxis | Descripción del comportamiento o de la diferencia |
---|---|
\ (carácter de continuación de línea) | El carácter de continuación de línea (barra invertida antes de una nueva línea) para cadenas de caracteres y hexadecimales no es actualmente compatible. Para las cadenas de caracteres, la barra invertida de nueva línea se interpreta como caracteres en la cadena. Para las cadenas hexadecimales, la barra invertida de nueva línea da como resultado un error de sintaxis. |
@@version |
El formato del valor devuelto por |
Funciones de agregación |
Las funciones agregadas con parcialmente compatibles (se admiten AVG, COUNT, COUNT_BIG, GROUPING, MAX, MIN, STRING_AGG y SUM). Para ver una lista de las funciones agregadas no admitidas, consulte Funciones que no son compatibles. |
ALTER TABLE |
Admite la adición o eliminación de una sola columna o restricción. |
ALTER TABLE..ALTER COLUMN |
Actualmente no se pueden especificar NULL y NOT NULL. Para cambiar la nulabilidad de una columna, utilice la instrucción postgreSQL ALTER TABLE..{SET|DROP} NOT NULL. |
Nombres de columna en blanco sin alias de columna |
Las utilidades
|
Función CHECKSUM |
Babelfish y SQL Server utilizan diferentes algoritmos de hash para la función CHECKSUM. Como resultado, los valores hash generados por la función CHECKSUM en Babelfish pueden ser diferentes de los generados por la función CHECKSUM en SQL Server. |
Columna predeterminada |
Al crear un valor predeterminado de columna, se ignora el nombre de la restricción. Para eliminar un valor predeterminado de columna, utilice la sintaxis siguiente: |
Constraint_name |
En SQL Server, los nombres de las restricciones deben ser únicos dentro del esquema al que pertenece la tabla. Sin embargo, en Babelfish, esto solo se aplica a las restricciones PRIMARY KEY y UNIQUE. Otros tipos de restricciones no están sujetos a esta limitación. |
Restricciones |
PostgreSQL no admite activar y desactivar restricciones individuales. La instrucción se omite y se produce una advertencia. |
Restricciones con IGNORE_DUP_KEY |
Las restricciones se crean sin esta propiedad. |
CREATE, ALTER, DROP SERVER ROLE |
ALTER SERVER ROLE solo se admite para El usuario de T-SQL de Babelfish tiene una experiencia similar a SQL Server para los conceptos de inicio de sesión (entidad principal de servidor), base de datos y usuario de base de datos (entidad principal de base de datos). |
Las cláusulas CREATE, ALTER LOGIN se admiten con sintaxis limitada |
CREATE LOGIN... Se admiten las cláusulas PASSWORD, ...DEFAULT_DATABASE y ... DEFAULT_LANGUAGE. ALTER LOGIN... Se admite la cláusula PASSWORD, pero la cláusula ALTER LOGIN... OLD_PASSWORD no se admite. Solo un inicio de sesión que sea miembro del administrador del sistema puede modificar una contraseña. |
Intercalación que distingue entre mayúsculas de minúsculas CREATE DATABASE |
La instrucción CREATE DATABASE no admite las intercalaciones que distinguen mayúsculas de minúsculas. |
Palabras clave y cláusulas de CREATE DATABASE |
No se admiten las opciones excepto COLLATE y CONTAINMENT=NONE. La cláusula COLLATE se acepta y siempre se establece en el valor de |
Cláusulas CREATE SCHEMA... admitidas |
Puede utilizar el comando CREATE SCHEMA para crear un esquema vacío. Utilice comandos adicionales para crear objetos de esquema. |
Los valores de ID de base de datos son diferentes en Babelfish |
Las bases de datos maestra y tempdb no serán los ID de base de datos 1 y 2. |
La función de tipo de fecha FORMAT se admite con las siguientes limitaciones |
No se admite el meridiano de un solo carácter. El formato "yyy" de SQL Server devuelve 4 dígitos para los años superiores a 1000, pero solo 3 dígitos para los demás. No se admiten los formatos "g" y "R" La configuración regional "vi-VN" es ligeramente diferente. |
Identificadores superiores a 63 caracteres |
PostgreSQL admite un máximo de 63 caracteres para los identificadores. Babelfish convierte los identificadores de más de 63 caracteres en un nombre que incluye un hash del nombre original. Por ejemplo, una tabla creada como "AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890" se podría convertir a "ABC123456789012345678901234567890123456789012345678901234567890". |
Compatibilidad con columnas IDENTITY |
Se admiten las columnas IDENTITY para los tipos de datos tinyint , smallint , int , bigint , numeric y decimal . SQL Server admite precisión de 38 lugares para los tipos de datos PostgreSQL admite precisión de 19 lugares para los tipos de datos |
Índices con IGNORE_DUP_KEY |
La sintaxis que crea un índice que incluye IGNORE_DUP_KEY crea un índice como si se omitiera esta propiedad. |
Índices con más de 32 columnas |
Un índice no puede incluir más de 32 columnas. Las columnas de índice incluidas se cuentan hacia el máximo en PostgreSQL, pero no en SQL Server. |
Índices (en clúster) |
Los índices en clúster se crean como si NONclústerED se hubiera especificado. |
Cláusulas de índices |
Se ignoran las siguientes cláusulas: FILLFACTOR, ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, PAD_INDEX, STATISTICS_NORECOMPUTE, OPTIMIZE_FOR_SEQUENTIAL_KEY, SORT_IN_TEMPDB, DROP_EXISTING, ONLINE, COMPRESSION_DELAY, MAXDOP y DATA_COMPRESSION |
Compatibilidad con JSON |
El orden de los pares nombre-valor no está garantizado. Sin embargo, el tipo de matriz no se ve afectado. |
Objetos LOGIN |
No se admiten todas las opciones para objetos LOGIN, excepto para DEFAULT_DATABASE, DEFAULT_LANGUAGE, ENABLE, DISABLE. |
Función NEWSEQUENTIALID |
Implementado como NEWID; el comportamiento secuencial no está garantizado. Al llamar a |
Las siguientes limitaciones admiten la cláusula OUTPUT |
OUTPUT y OUTPUT INTO no se admiten en la misma consulta de DML. No se admiten las referencias a la tabla que no es de destino de las operaciones UPDATE o DELETE en una cláusula OUTPUT. OUTPUT... DELETED *, INSERTED * no se admiten en la misma consulta. |
Límite de parámetros de procedimiento o función |
Babelfish admite un máximo de 100 parámetros para un procedimiento o función. |
ROWGUIDCOL |
Esta cláusula se omite actualmente. Las consultas que referencian a |
Compatibilidad con objetos SEQUENCE |
Los objetos SEQUENCE se admiten en los tipos de datos tinyint, smallint, int, bigint, numéricos y decimales. Aurora PostgreSQL admite la precisión de 19 posiciones para tipos de datos numéricos y decimales en un objeto SEQUENCE. |
Roles de nivel de servidor |
Se puede usar el rol de nivel de servidor |
Roles de nivel de base de datos distintos de |
Se admiten los roles de nivel de base de datos |
Palabra clave SPARSE de SQL | La palabra clave SPARSE se acepta e ignora. |
Cláusula de palabras clave de SQL |
Esta cláusula se omite actualmente. |
Palabras clave de SQL |
Babelfish acepta e ignora las palabras clave |
|
|
tempdb no se reinicializa al reiniciar |
Los objetos permanentes (como tablas y procedimientos) creados en tempdb no se eliminan cuando se reinicia la base de datos. |
Grupo de archivos TEXTIMAGE_ON |
Babelfish ignora la cláusula |
Precisión del tiempo |
Babelfish admite una precisión de 6 dígitos para los segundos fraccionados. No se prevén efectos negativos con este comportamiento. |
Niveles de aislamiento de transacciones |
READUNCOMMITTED se trata igual que READCOMMITTED. |
Columnas calculadas virtuales (no persistentes) |
Las columnas calculadas virtuales se crean como persistentes. |
Sin cláusula SCHEMABINDING |
Esta cláusula no se admite en funciones, procedimientos, desencadenadores ni vistas. Se crea el objeto, pero como si se hubiera especificado WITH SCHEMABINDING. |