T- SQL Différences dans Babelfish - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

T- SQL Différences dans Babelfish

Vous trouverez ci-dessous un tableau des SQL fonctionnalités T prises en charge dans la version actuelle de Babelfish avec quelques notes sur les différences de comportement par rapport à celui de SQL Server.

Pour plus d'informations sur le support dans les différentes versions, consultez Fonctionnalités prises en charge dans Babelfish par version. Pour plus d'informations sur les fonctionnalités qui ne sont actuellement pas prises en charge, consultez Fonctionnalités non prises en charge dans Babelfish.

Babelfish est disponible avec l'édition compatible Aurora PostgreSQL. Pour plus d'informations sur les versions de Babelfish, consultez les notes de publication d'Aurora Postgre. SQL

Fonctionnalité ou syntaxe Description du comportement ou de la différence
\ (caractère de continuation de ligne) Le caractère de continuation de ligne (une barre oblique inverse avant une nouvelle ligne) pour les chaînes de caractères et les chaînes hexadécimales n'est pour le moment pas pris en charge. Pour les chaînes de caractères, le signe backslash-newline est interprété comme des caractères dans la chaîne. Pour les chaînes hexadécimales, le signe backslash-newline entraîne une erreur de syntaxe.

@@version

Le format de la valeur renvoyée par @@version est légèrement différent de celui renvoyé par SQL Server. Votre code peut ne pas fonctionner correctement s'il repose sur le format de @@version.

Fonctions d’agrégation

Les fonctions d'agrégation sont partiellement prises en charge (AVGCOUNT,BIG, COUNT _GROUPING,MAX,MIN, STRING _AGG, et SUM sont prises en charge). Pour obtenir une liste des fonctions d'agrégation non prises en charge, consultez Fonctions non prises en charge

ALTER TABLE

Prend en charge l'ajout ou la suppression d'une seule colonne ou d'une seule contrainte.

ALTER TABLE..ALTER COLUMN

NULLet ne NOT NULL peut pas être spécifié pour le moment. Pour modifier le caractère nul d'une colonne, utilisez l'instruction SQL postgre. ALTER TABLE {SET|DROP} NOTNULL.

Noms de colonnes vides sans alias de colonne

Les utilitaires sqlcmd et psql traitent différemment les colonnes dont le nom est vide :

  • SQLLe serveur sqlcmd renvoie un nom de colonne vide.

  • Postgre SQL psql renvoie un nom de colonne généré.

CHECKSUMfonction

Babelfish et SQL Server utilisent des algorithmes de hachage différents pour la fonction. CHECKSUM Par conséquent, les valeurs de hachage générées par la CHECKSUM fonction dans Babelfish peuvent être différentes de celles générées par la CHECKSUM fonction dans Server. SQL

Colonne par défaut

Lors de la création d'une colonne par défaut, le nom de la contrainte est ignoré. Pour supprimer une colonne par défaut, utilisez la syntaxe suivante : ALTER TABLE...ALTER COLUMN..DROP DEFAULT...

Nom_contrainte

Dans SQL Server, les noms de contrainte doivent être uniques dans le schéma auquel appartient la table. Cependant, dans Babelfish, cela ne s'applique qu'PRIMARYKEYaux UNIQUE contraintes. Les autres types de contraintes ne sont pas soumis à cette restriction.

Constraints

Postgre SQL ne prend pas en charge l'activation et la désactivation des contraintes individuelles. L'instruction est ignorée et un avertissement est émis.

Contraintes associées à IGNORE _ DUP _ KEY

Les contraintes sont créées sans cette propriété.

CREATE, ALTER, DROP SERVER ROLE

ALTERSERVERROLEn'est pris en charge que poursysadmin. Aucune autre syntaxe n'est prise en charge.

L'SQLutilisateur T de Babelfish a une expérience similaire à celle de SQL Server en ce qui concerne les concepts de connexion (principal de serveur), de base de données et d'utilisateur de base de données (principal de base de données).

CREATE, les ALTER LOGIN clauses sont prises en charge avec une syntaxe limitée

Le CREATELOGIN... PASSWORDclause,... DEFAULT_ DATABASE clause, et... DEFAULTLes LANGUAGE clauses _ sont prises en charge. Le ALTERLOGIN... PASSWORDla clause est prise en charge, mais ALTERLOGIN... OLDPASSWORDLa clause _ n'est pas prise en charge. Seul un identifiant correspondant à un membre sysadmin peut modifier un mot de passe.

CREATEDATABASEclassement sensible aux majuscules et

Les classements qui distinguent les majuscules et minuscules ne sont pas pris en charge par l'CREATEDATABASEinstruction.

CREATEDATABASEmots clés et clauses

Les options sauf COLLATE et CONTAINMENT = NONE ne sont pas prises en charge. La COLLATE clause est acceptée et est toujours définie sur la valeur debabelfishpg_tsql.server_collation_name.

CREATESCHEMA... clauses justificatives

Vous pouvez utiliser la CREATE SCHEMA commande pour créer un schéma vide. Utilisez des commandes supplémentaires pour créer des objets de schéma.

Les valeurs d'ID de base de données sont différentes sur Babelfish

Les bases de données master et tempdb ne seront pas les bases de données IDs 1 et 2.

FORMATla fonction de type date est prise en charge avec les limitations suivantes

Le méridien à caractère unique n'est pas pris en charge.

Le format « yyy » SQL du serveur renvoie 4 chiffres pour les années supérieures à 1000, mais seulement 3 chiffres pour les autres.

Les formats « g » et « R » ne sont pas pris en charge

La traduction locale « vi-VN » est légèrement différente.

Identifiants dépassant 63 caractères

Postgre SQL prend en charge un maximum de 63 caractères pour les identifiants. Babelfish convertit les identifiants de plus de 63 caractères en un nom qui inclut un hachage du nom d'origine. Par exemple, une table créée sous le nom « AB (ABC1234567890123456789012345678901234567890123456789012345678901234567890) » peut être convertie en « 012345678901234567890123456789012345678901234567890 ». ABC123456789

IDENTITYsupport de colonnes

Les colonnes IDENTITY sont prises en charge pour les types de données tinyint, smallint, int, bigint. numeric et decimal.

SQLLe serveur prend en charge la précision jusqu'à 38 positions pour les types de données numeric et decimal dans IDENTITY les colonnes.

Postgre SQL prend en charge la précision jusqu'à 19 positions pour les types de données numeric et decimal dans les IDENTITY colonnes.

Index avec IGNORE _ _ DUP KEY

La syntaxe qui crée un index incluant IGNORE _ DUP _ KEY crée un index comme si cette propriété était omise.

Index comportant plus de 32 colonnes

Un index ne peut pas comporter plus de 32 colonnes. Les colonnes d'index incluses sont comptabilisées au maximum dans PostgreSQL, mais pas dans SQL Server.

Index (en cluster)

Les index clusterisés sont créés comme s'ils avaient NONCLUSTERED été spécifiés.

Clauses d'index

Les clauses suivantes sont ignorées :FILLFACTOR, ALLOW PAGE _ _LOCKS, ALLOW ROW _LOCKS, PAD _INDEX, STATISTICS _NORECOMPUTE, OPTIMIZE _ FOR SEQUENTIAL _KEY, SORT _IN_TEMPDB, _, DROP _ EXISTINGONLINE, COMPRESSION _ DELAYMAXDOP, et _ DATA COMPRESSION

JSONsoutien

L'ordre des paires nom-valeur n'est pas garanti. Mais le type de table n'est pas affecté.

LOGINobjets

Toutes les options relatives aux LOGIN objets ne sont pas prises en chargePASSWORD, à l'exception deDATABASE, DEFAULT DEFAULT _LANGUAGE, _ENABLE,DISABLE.

NEWSEQUENTIALIDfonction

Implémenté en tant que NEWID ; le comportement séquentiel n'est pas garanti. Lors de l'appelNEWSEQUENTIALID, Postgre SQL génère une nouvelle GUID valeur.

OUTPUTla clause est prise en charge avec les limitations suivantes

OUTPUTet OUTPUT INTO ne sont pas pris en charge dans la même DML requête. Les références à une table UPDATE ou à des DELETE opérations non cibles dans une OUTPUT clause ne sont pas prises en charge. OUTPUT... DELETED*, INSERTED * ne sont pas pris en charge dans la même requête.

Limite de paramètres de procédure ou de fonction

Babelfish prend en charge un maximum de 100 paramètres pour une procédure ou une fonction.

ROWGUIDCOL

Cette clause est actuellement ignorée. Les requêtes faisant référence à $GUIDGOL provoquent une erreur de syntaxe.

SEQUENCEsupport d'objets

SEQUENCEles objets sont pris en charge pour les types de données tinyint, smallint, int, bigint, numeric et decimal.

Aurora Postgre SQL prend en charge une précision de 19 positions pour les types de données numériques et décimaux dans a. SEQUENCE

Rôles au niveau du serveur

Le rôle sysadmin au niveau du serveur est pris en charge. Les autres rôles au niveau du serveur (autres que sysadmin) ne sont pas pris en charge.

Rôles de niveau base de données autres que db_owner

Les rôles au niveau de la base de données db_owner et les rôles au niveau de la base de données définis par l'utilisateur sont pris en charge. Les autres rôles au niveau de la base de données (autres que db_owner) ne sont pas pris en charge.

SQLmot clé SPARSE

Le mot clé SPARSE est accepté et ignoré.

SQLclause de mot clé ON filegroup

Cette clause est actuellement ignorée.

SQLmots clés CLUSTERED et NONCLUSTERED pour les index et les contraintes

Babelfish accepte et ignore les mots-clés CLUSTERED et NONCLUSTERED

sysdatabases.cmptlevel

sysdatabases.cmptlevel est toujours défini sur 120.

La base de données tempdb n'est pas réinitialisée au redémarrage

Les objets permanents (comme les tables et les procédures) créés dans tempdb ne sont pas supprimés au redémarrage de la base de données.

TEXTIMAGEGroupe de fichiers _ON

Babelfish ignore le TEXTIMAGE_ON groupe de fichiers clause.

Précision temporelle

Babelfish prend en charge une précision à 6 chiffres pour les fractions de seconde. Aucun effet indésirable n'est anticipé avec ce comportement.

Niveaux d'isolement des transactions

READUNCOMMITTEDest traité de la même manière queREADCOMMITTED.

Colonnes virtuelles calculées (non persistantes)

Les colonnes virtuelles calculées sont créées en tant que colonnes persistantes.

Sans SCHEMABINDING clause

Cette clause n'est pas prise en charge dans les fonctions, procédures, déclencheurs ou vues. L'objet est créé, mais comme s'il WITH SCHEMABINDING avait été spécifié.