Differenze T-SQL in Babelfish - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Differenze T-SQL in Babelfish

Di seguito, è possibile trovare una tabella delle funzionalità T-SQL supportate nella versione corrente di Babelfish con alcune note sulle differenze nel comportamento rispetto a quello di SQL Server.

Per ulteriori informazioni sul supporto delle diverse versioni, consulta Funzionalità supportate in Babelfish per versione. Per informazioni sulle funzionalità attualmente non supportate, consulta Funzionalità non supportate in Babelfish.

Babelfish è disponibile con Aurora PostgreSQL-Compatible Edition. Per ulteriori informazioni sulle versioni di Babelfish, consulta Release notes for Amazon Aurora PostgreSQL-Compatible Edition.

Funzionalità o sintassi Descrizione del comportamento o della differenza
\ (carattere di continuazione della riga) Il carattere di continuazione della riga (una barra rovesciata prima di una nuova riga) per stringhe di caratteri ed esadecimali non è attualmente supportato. Per le stringhe di caratteri, la barra rovesciata-nuova riga viene interpretata come caratteri nella stringa. Per le stringhe esadecimali, la barra rovesciata-nuova riga genera un errore di sintassi.

@version

Il formato del valore restituito da @@version è leggermente diverso dal valore restituito da SQL Server. Il codice potrebbe non funzionare correttamente se dipende dalla formattazione di @@version.

Funzioni di aggregazione

Le funzioni di aggregazione sono parzialmente supportate (sono supportate AVG, COUNT, COUNT_BIG, GROUPING, MAX, MIN, STRING_AGG e SUM). Per gli elenchi di funzionalità non supportate, vedere Funzioni non supportate.

ALTER TABLE

Supporta l'aggiunta o l'eliminazione di una sola colonna o di un solo vincolo.

ALTER TABLE..ALTER COLUMN

Al momento non è possibile specificare NULL e NOT NULL. Per modificare la nullabilità di una colonna, usa l'istruzione PostgreSQL ALTER TABLE..{SET|DROP} NOT NULL.

Nomi di colonna vuoti senza alias di colonna

Le utility sqlcmd e psql gestiscono le colonne con nomi vuoti in modo diverso:

  • SQL Server sqlcmd restituisce un nome di colonna vuoto.

  • PostgreSQL psql restituisce un nome di colonna generato.

Funzione CHECKSUM

Babelfish e SQL Server utilizzano algoritmi di hashing diversi per la funzione CHECKSUM. Di conseguenza, i valori hash generati dalla funzione CHECKSUM in Babelfish potrebbero essere diversi da quelli generati dalla funzione CHECKSUM in SQL Server.

Impostazione predefinita colonna

Quando si crea una colonna predefinita, il nome del vincolo viene ignorato. Per eliminare una colonna predefinita, utilizza la sintassi seguente: ALTER TABLE...ALTER COLUMN..DROP DEFAULT...

Vincoli

PostgreSQL non supporta l'attivazione e la disattivazione di singoli vincoli. L'istruzione DDL viene ignorata e viene emesso un avviso.

Vincoli creati con colonne DESC (decrescenti)

I vincoli vengono creati con colonne ASC (ascendenti).

Vincoli con IGNORE_DUP_KEY

I vincoli vengono creati senza questa proprietà.

CREA, ALTERA, RILASCIA IL RUOLO DEL SERVER

RILASCIA IL RUOLO DEL SERVER è supportato solo per sysadmin. Tutta l'altra sintassi non è supportata.

L'utente T-SQL in Babelfish ha un'esperienza simile a SQL Server per i concetti di accesso (principale del server), di un database e di un utente del database (principale del database).

Le clausole CREATE, ALTER LOGIN sono supportate con una sintassi limitata

CREATE LOGIN... Sono supportate la clausola PASSWORD, DEFAULT_DATABASE e DEFAULT_LANGUAGE. L'ALTER LOGIN... La clausola PASSWORD è supportata, ma ALTER LOGIN... La clausola OLD_PASSWORD non è supportata. Solo un login che è un membro di sysadmin può modificare una password.

Raccolta distinzione tra lettere maiuscole e minuscole CREATE DATABASE

Le raccolte con distinzione tra maiuscole e minuscole non sono supportate con l'affermazione CREATE DATABASE

Parole chiave e clausole CREATE DATABASE

Le opzioni tranne COLLATE e CONTAINMENT=NONE non sono supportate. La clausola COLLATE è accettata ed è sempre impostata sul valore di babelfishpg_tsql.server_collation_name.

Clausole di supporto CREATE SCHEMA…

È possibile utilizzare il comando CREATE SCHEMA per creare uno schema vuoto. Utilizzare comandi aggiuntivi per creare oggetti dello schema.

I valori ID del database sono diversi su Babelfish

Ai database master e tempdb non corrispondono gli ID database 1 e 2.

La funzione di tipo di data FORMAT è supportata con le seguenti limitazioni

Il meridiano a singolo carattere non è supportato.

Il formato "yyy" in SQL Server restituisce 4 cifre per l'anno superiore a 1000, ma solo 3 cifre per gli altri.

I formati "g" e "R" non sono supportati

La traduzione locale "vi-VN" è leggermente diversa.

Identificatori superiori a 63 caratteri

PostgreSQL supporta un massimo di 63 caratteri per gli identificatori. Babelfish converte gli identificatori più lunghi di 63 caratteri in un nome che include un hash del nome originale. Ad esempio, una tabella creata come "AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890" potrebbe essere convertita in "ABC123456789012345678901234567890123456789012345678901234567890".

Supporto delle colonne IDENTITY

Le colonne IDENTITY sono supportate per i tipi di dati tinyint, smallint, int, bigint. numeric e decimal.

SQL Server supporta la precisione fino a 38 posizioni per i tipi di dati numeric e decimal nelle colonne IDENTITY.

PostgreSQL supporta la precisione fino a 19 posizioni per i tipi di dati numeric e decimal nelle colonne IDENTITY.

Indici con IGNORE_DUP_KEY

La sintassi che crea un indice che include IGNORE_DUP_KEY crea un indice come se questa proprietà fosse omessa.

Indici con più di 32 colonne

Un indice non può includere più di 32 colonne. Le colonne di indice incluse contano fino al massimo in PostgreSQL ma non in SQL Server.

Indici (cluster)

Gli indici cluster vengono creati come se NON CLUSTERED fosse stato specificato.

Clausole Indice

Le seguenti clausole vengono ignorate: 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

Supporto JSON

L'ordine delle coppie nome-valore non è garantito. Ma il tipo di array rimane inalterato.

Oggetti LOGIN

Tutte le opzioni per gli oggetti LOGIN non sono supportate ad eccezione di PASSWORD, DEFAULT_DATABASE, DEFAULT_LANGUAGE, ENABLE, DISABLE.

La funzione NEWSEQUENTIALID

Implementato come NEWID; il comportamento sequenziale non è garantito. Quando si richiama NEWSEQUENTIALID, PostgreSQL genera un nuovo valore GUID.

La clausola OUTPUT è supportata con le seguenti limitazioni

OUTPUT e OUTPUT INTO non sono supportati nella stessa query DML. I riferimenti alla tabella non di destinazione delle operazioni UPDATE o DELETE in una clausola OUTPUT non sono supportati. OUTPUT... DELETED *, INSERTED * non sono supportati nella stessa query.

Limite dei parametri di procedura o funzione

Babelfish supporta un massimo di 100 parametri per una procedura o una funzione.

ROWGUIDCOL

Al momento, questa clausola è ignorata. Le query che fanno riferimento a $GUIDGOL causano un errore di sintassi.

Supporto degli oggetti SEQUENCE

Gli oggetti SEQUENCE sono supportati per i tipi di dati tinyint, smallint, int, bigint, numerico e decimale.

Aurora PostgreSQL supporta la precisione di 19 posizioni per i tipi di dati numerici e decimali in una SEQUENCE.

Ruoli a livello di server

Il ruolo a livello di server sysadmin è supportato. Altri ruoli a livello server (diversi da sysadmin) non sono supportati.

Ruoli a livello di database diversi da db_owner

Sono supportati i ruoli a livello di database db_owner e i ruoli a livello di database definiti dall'utente. Altri ruoli a livello server (diversi da db_owner) non sono supportati.

Parola chiave SQL SPARSE

La parola chiave SPARSE viene accettata e ignorata.

Clausola parola chiave SQLON filegroup

Al momento, questa clausola è ignorata.

Parole chiave SQL CLUSTERED e NONCLUSTERED per indici e vincoli

Babelfish accetta e ignora le parole chiave CLUSTERED e NONCLUSTERED

sysdatabases.cmptlevel

sysdatabases.cmptlevel è sempre impostato su 120.

tempdb non viene reinizializzato al riavvio

Gli oggetti permanenti (come tabelle e procedure) creati in tempdb non vengono rimossi al riavvio del database.

Gruppo di file TEXTIMAGE_ON

Babelfish ignora la clausola TEXTIMAGE_ON filegroup.

Precisione temporale

Babelfish supporta la precisione a 6 cifre per secondi frazionari. Non sono previsti effetti avversi con questo comportamento.

Livelli di isolamento della transazione

READUNCOMMITTED è trattato allo stesso modo di READCOMMITTED.

Colonne computate virtuali (non persistenti)

Le colonne computate virtuali vengono create come persistenti.

Senza clausola SCHEMABINDING

Questa clausola non è supportata in funzioni, procedure, trigger o viste. L'oggetto viene creato, ma come se WITH SCHEMABINDING fosse stato specificato.