Diferenças do T-SQL no Babelfish
A seguir, você pode encontrar uma tabela de funcionalidades do T-SQL compatíveis com a versão atual do Babelfish, com algumas notas sobre as diferenças no comportamento do SQL Server.
Para obter mais informações sobre a compatibilidade com várias versões, consulte Funcionalidade compatível no Babelfish por versão. Para obter informações sobre recursos que atualmente não são compatíveis, consulte Funcionalidade não compatível com o Babelfish.
O Babelfish está disponível com a edição compatível com Aurora PostgreSQL. Para obter mais informações sobre as versões do Babelfish, consulte as Notas de lançamento do Aurora PostgreSQL.
Funcionalidade ou sintaxe | Descrição do comportamento ou da diferença |
---|---|
\ (caractere de continuação de linha) | O caractere de continuação de linha (uma barra invertida antes de uma nova linha) para caracteres e strings hexadecimais não é compatível no momento. Para strings de caracteres, a nova linha da barra invertida é interpretada como caracteres na string. Para strings hexadecimais, a nova linha da barra invertida gera um erro de sintaxe. |
@@version |
O formato do valor retornado por |
Funções agregadas |
As funções agregadas são parcialmente compatíveis (AVG, COUNT, COUNT_BIG, GROUPING, MAX, MIN, STRING_AGG e SUM são compatíveis). Para ver uma lista de funções agregadas não compatíveis, consulte Funções que não há suporte. |
ALTER TABLE |
Suporta adicionar ou soltar uma única coluna ou restrição somente. |
ALTER TABLE..ALTER COLUMN |
NULL e NOT NULL não podem ser especificados no momento. Para alterar a nulidade de uma coluna, use a instrução ALTER TABLE..{SET|DROP} NOT NULL do PostgreSQL. |
Nomes de colunas em branco sem alias de coluna |
Os utilitários
|
Função CHECKSUM |
O Babelfish e o SQL Server usam diferentes algoritmos de hash para a função CHECKSUM. Como resultado, os valores de hash gerados pela função CHECKSUM no Babelfish podem ser diferentes daqueles gerados pela função CHECKSUM no SQL Server. |
Padrão de coluna |
Ao criar um padrão de coluna, o nome da restrição é ignorado. Para descartar um padrão de coluna, utilize a seguinte sintaxe: |
Constraint_name |
No SQL Server, os nomes das restrições devem ser exclusivos dentro do esquema ao qual a tabela pertence. No entanto, no Babelfish, isso se aplica somente às restrições PRIMARY KEY e UNIQUE. Outros tipos de restrição não estão sujeitos a essa restrição. |
Restrições |
O PostgreSQL não oferece suporte à ativação e à desativação de restrições individuais. A instrução é ignorada, e um aviso é gerado. |
Restrições com IGNORE_DUP_KEY |
Restrições são criadas sem essa propriedade. |
CREATE, ALTER, DROP SERVER ROLE |
ALTER SERVER ROLE tem suporte apenas para O usuário T-SQL no Babelfish tem uma experiência semelhante à do SQL Server para os conceitos de login (entidade principal de servidor), banco de dados e usuário de banco de dados (entidade principal de banco de dados). |
Cláusulas CREATE, ALTER LOGIN têm suporte com sintaxe limitada |
Há suporte para as cláusulas CREATE LOGIN... PASSWORD, ...DEFAULT_DATABASE e ...DEFAULT_LANGUAGE. Há suporte para a cláusula ALTER LOGIN... PASSWORD, mas não para a cláusula ALTER LOGIN... OLD_PASSWORD. Apenas um login que seja um membro sysadmin pode modificar uma senha. |
Agrupamento CREATE DATABASE com distinção entre maiúsculas e minúsculas |
Não há suporte para agrupamentos com distinção entre maiúsculas e minúsculas para a instrução CREATE DATABASE. |
Palavras-chave e cláusulas CREATE DATABASE |
Não há suporte para opções, exceto COLLATE e CONTAINMENT=NONE. A cláusula COLLATE tem suporte e sempre é definida como o valor de |
Cláusulas de suporte CREATE SCHEMA... |
Você pode utilizar o comando CREATE SCHEMA para criar um esquema vazio. Utilize comandos adicionais para criar objetos de esquema. |
Os valores de ID de banco de dados são diferentes no Babelfish |
Os bancos de dados primário e tempdb não serão os IDs de banco de dados 1 e 2. |
A função de tipo de data FORMAT é compatível com as limitações a seguir |
Não há suporte para meridiano de caractere único. O formato “yyy” no SQL Server retorna 4 dígitos para anos acima de 1.000, mas apenas 3 dígitos para outros. Não há suporte para os formatos “g” e “R” A tradução local “vi-VN” é um pouco diferente. |
Identificadores com mais de 63 caracteres |
O PostgreSQL oferece suporte a um máximo de 63 caracteres para identificadores. O Babelfish converte identificadores com mais de 63 caracteres em um nome que inclui um hash do nome original. Por exemplo, uma tabela criada como “AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890” pode ser convertida para “ABC123456789012345678901234567890123456789012345678901234567890”. |
Suporte para colunas IDENTITY |
Colunas IDENTITY têm suporte para os tipos de dados tinyint , smallint , int , bigint . numeric e decimal . O SQL Server oferece suporte à precisão de 38 casas para tipos de dados O PostgreSQL oferece suporte à precisão de 19 casas para tipos de dados |
Índices com IGNORE_DUP_KEY |
A sintaxe que cria um índice que inclui IGNORE_DUP_KEY cria um índice como se essa propriedade fosse omitida. |
Índices com mais de 32 colunas |
Um índice não pode incluir mais de 32 colunas. Colunas de índice incluídas contam para o máximo no PostgreSQL, mas não no SQL Server. |
Índices (clusterizados) |
Índices clusterizados são criados como se NONCLUSTERED tivesse sido especificada. |
Cláusulas de índice |
As cláusulas a seguir são ignoradas: FILLFACTOR, ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, PAD_INDEX, STATISTICS_NORECOMPUTE, OPTIMIZE_FOR_SEQUENTIAL_KEY, SORT_IN_TEMPDB, DROP_EXISTING, ONLINE, COMPRESSION_DELAY, MAXDOP e DATA_COMPRESSION |
Suporte para JSON |
A ordem dos pares nome-valor não é garantida. Mas o tipo de matriz permanece inalterado. |
Objetos LOGIN |
Todas as opções para objetos LOGIN são incompatíveis, exceto: PASSWORD, DEFAULT_DATABASE, DEFAULT_LANGUAGE, ENABLE e DISABLE. |
Função NEWSEQUENTIALID |
Implementada como NEWID; o comportamento sequencial não é garantido. Ao chamar |
A cláusula OUTPUT tem suporte com as seguintes limitações |
OUTPUT e OUTPUT INTO não têm suporte na mesma consulta DML. Não há suporte para referências à tabela não alvo de operações UPDATE ou DELETE em uma cláusula OUTPUT. OUTPUT... DELETED *, INSERTED * não têm suporte na mesma consulta. |
Limite de parâmetros de função ou procedimento |
O Babelfish oferece suporte a um máximo de 100 parâmetros para um procedimento ou uma função. |
ROWGUIDCOL |
Essa cláusula é ignorada no momento. Consultas que fazem referência a |
Suporte para objetos SEQUENCE |
Objetos SEQUENCE têm suporte para tipos de dados tinyint, smallint, int, bigint, numeric e decimal. O Aurora PostgreSQL oferece suporte à precisão de 19 casas para tipos de dados numéricos e decimais em um objeto SEQUENCE. |
Funções no nível do servidor |
A função no nível do servidor |
Funções em nível de banco de dados diferentes de |
As funções de |
Palavra-chave SQL SPARSE | A palavra-chave SPARSE é aceita e ignorada. |
Cláusula de palavra-chave SQL |
Essa cláusula é ignorada no momento. |
Palavras-chave SQL |
O Babelfish aceita e ignora as palavras-chave |
|
|
tempdb não é reinicializado na reinicialização |
Objetos permanentes (como tabelas e procedimentos) criados em tempdb não são removidos quando o banco de dados é reiniciado. |
TEXTIMAGE_ON filegroup |
Babelfish ignora a cláusula |
Precisão do tempo |
O Babelfish oferece suporte com precisão de 6 dígitos para segundos fracionários. Nenhum efeito adverso é antecipado com esse comportamento. |
Níveis de isolamento de transações |
READUNCOMMITTED é tratada da mesma forma que READCOMMITED. |
Colunas calculadas virtuais (não persistentes) |
Colunas calculadas virtuais são criadas como persistentes. |
Sem cláusula SCHEMABINDING |
Essa cláusula não tem suporte em funções, procedimentos, acionadores ou visualizações. O objeto é criado, mas como se WITH SCHEMABINDING tivesse sido especificada. |