Perbedaan T-SQL di Babelfish - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Perbedaan T-SQL di Babelfish

Berikut cara Anda dapat menemukan tabel fungsionalitas T-SQL seperti yang didukung dalam rilis Babelfish saat ini dengan beberapa catatan tentang perbedaan perilaku dari SQL Server.

Untuk informasi selengkapnya tentang dukungan di berbagai versi, lihat Fungsionalitas yang didukung di Babelfish berdasarkan versi. Untuk informasi tentang fitur yang saat ini tidak didukung, lihat Fungsionalitas yang tidak didukung di Babelfish.

Babelfish tersedia dengan Aurora Edisi Kompatibel PostgreSQL. Untuk informasi lebih lanjut tentang rilis Babelfish, lihat Catatan Rilis untuk Aurora PostgreSQL.

Fungsionalitas atau sintaks Deskripsi perilaku atau perbedaan
\ (karakter kelanjutan baris) Karakter kelanjutan baris (garis miring terbalik sebelum baris baru) untuk karakter dan string heksadesimal saat ini tidak didukung. Untuk string karakter, backslash-newline ditafsirkan sebagai karakter dalam string. Untuk string heksadesimal, garis miring terbalik menghasilkan kesalahan sintaks.

@@version

Format nilai yang dikembalikan oleh @@version sedikit berbeda dari nilai yang dikembalikan oleh SQL Server. Kode Anda mungkin tidak berfungsi dengan benar jika tergantung pada pemformatan @@version.

Fungsi agregat

Fungsi agregat didukung sebagian (AVG, COUNT, COUNT_BIG, GROUPING, MAX, MIN, STRING_AGG, dan SUM didukung). Untuk daftar fungsi agregat yang tidak didukung, lihat. Fungsi yang tidak didukung

ALTER TABLE

Mendukung penambahan atau penjatuhan satu kolom atau batasan saja.

ALTER TABLE..ALTER COLUMN

NULL dan NOT NULL saat ini tidak dapat ditentukan. Untuk mengubah nullability kolom, gunakan pernyataan PostgreSQL ALTER TABLE.. {SET|DROP} NOT NULL.

Nama kolom kosong tanpa alias kolom

Utilitas sqlcmd dan psql menangani kolom dengan nama kosong secara berbeda:

  • SQL Server sqlcmd mengembalikan nama kolom kosong.

  • PostgreSQL psql mengembalikan nama kolom yang dihasilkan.

Fungsi CHECKSUM

Babelfish dan SQL Server menggunakan algoritma hashing yang berbeda untuk fungsi CHECKSUM. Akibatnya, nilai hash yang dihasilkan oleh fungsi CHECKSUM di Babelfish mungkin berbeda dari yang dihasilkan oleh fungsi CHECKSUM di SQL Server.

Kolom default

Saat membuat kolom default, nama batasan diabaikan. Untuk menjatuhkan kolom default, gunakan sintaks berikut: ALTER TABLE...ALTER COLUMN..DROP DEFAULT...

Kekurangan

PostgreSQL tidak mendukung pengaktifan dan penonaktifan batasan individu. Pernyataan itu diabaikan dan peringatan diajukan.

Batasan dibuat dengan kolom DESC (menurun)

Batasan dibuat dengan kolom ASC (naik).

Batasan dengan IGNORE_DUP_KEY

Batasan dibuat tanpa properti ini.

CREATE, ALTER, DROP SERVER ROLE

ALTER SERVER ROLE hanya didukung untuk sysadmin. Semua sintaks lainnya tidak didukung.

Pengguna T-SQL di Babelfish memiliki pengalaman yang mirip dengan SQL Server untuk konsep login (pengguna utama server), basis data, dan pengguna basis data user (pengguna utama basis data).

Klausa CREATE, ALTER LOGIN didukung dengan sintaks terbatas

CREATE LOGIN... Klausa PASSWORD, ...klausa DEFAULT_DATABASE, dan... klausa DEFAULT_LANGUAGE didukung. ALTER LOGIN... Klausa PASSWORD didukung, tetapi ALTER LOGIN... Klausa OLD_PASSWORD tidak didukung. Hanya login yang merupakan anggota sysadmin yang dapat memodifikasi kata sandi.

Kolasi CREATE DATABASE peka huruf besar/kecil

Kolasi peka huruf besar/kecil tidak didukung dengan pernyataan CREATE DATABASE.

Kata kunci dan klausa CREATE DATABASE

Opsi kecuali COLLATE dan CONTAINMENT=NONE tidak didukung. Klausa COLLATE diterima dan selalu diatur ke nilai babelfishpg_tsql.server_collation_name.

CREATE SCHEMA... klausa pendukung

Anda dapat menggunakan perintah CREATE SCHEMA untuk membuat skema kosong. Gunakan perintah tambahan untuk membuat objek skema.

Nilai ID basis data berbeda pada Babelfish

Basis data utama dan tempdb tidak akan menjadi ID basis data 1 dan 2.

Format fungsi tipe tanggal didukung dengan batasan berikut

Meridian karakter tunggal tidak didukung.

Format "yyy" di server SQL mengembalikan 4 digit untuk tahun di atas 1000, tetapi hanya 3 digit untuk yang lain.

Format "g" dan "R" tidak didukung

Terjemahan lokal "Vi-VN" sedikit berbeda.

Pengidentifikasi melebihi 63 karakter

PostgreSQL mendukung maksimal 63 karakter untuk pengidentifikasi. Babelfish mengonversi pengenal lebih dari 63 karakter ke nama yang menyertakan hash dari nama aslinya. Misalnya, tabel yang dibuat sebagai "AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890" mungkin akan dikonversi menjadi "ABC123456789012345678901234567890123456789012345678901234567890".

Dukungan kolom IDENTITY

Kolom IDENTITY didukung untuk tipe data tinyint, smallint, int, bigint. numeric, dan decimal.

SQL Server mendukung presisi ke 38 tempat untuk tipe data numeric dan decimal di kolom IDENTITY.

PostgreSQL mendukung presisi ke 19 tempat untuk tipe data numeric dan decimal di kolom IDENTITY.

Indeks dengan IGNORE_DUP_KEY

Sintaks yang membuat indeks yang menyertakan IGNORE_DUP_KEY membuat indeks seolah-olah properti ini dihilangkan.

Indeks dengan lebih dari 32 kolom

Indeks tidak dapat menyertakan lebih dari 32 kolom. Kolom indeks yang disertakan dihitung menuju maksimum di PostgreSQL tetapi tidak di SQL Server.

Indeks (berklaster)

Indeks berklaster dibuat seolah-olah NONCLUSTERED ditentukan.

Klausa indeks

Klausul berikut diabaikan: FILLFACTOR, ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, PAD_INDEX, STATISTICS_NORECOMPUTE, OPTIMIZE_FOR_SEQUENTIAL_KEY, SORT_IN_TEMPDB, DROP_EXISTING, ONLINE, COMPRESSION_DELAY, MAXDOP, dan DATA_COMPRESSION

Dukungan JSON

Urutan pasangan nama-nilai tidak dijamin. Tetapi tipe array tetap tidak terpengaruh.

Objek LOGIN

Semua opsi untuk objek LOGIN tidak didukung kecuali PASSWORD, DEFAULT_DATABASE, DEFAULT_LANGUAGE, ENABLE, DISABLE.

Fungsi NEWSEQUENTIALID

Diimplementasikan sebagai NEWID; perilaku berurutan tidak dijamin. Saat memanggil NEWSEQUENTIALID, PostgreSQL menghasilkan nilai GUID baru.

Klausa OUTPUT didukung dengan batasan berikut

OUTPUT dan OUTPUT INTO tidak didukung dalam kueri DML yang sama. Referensi ke tabel non-target operasi UPDATE atau DELETE dalam klausa OUTPUT tidak didukung. OUTPUT... DELETED *, INSERTED * tidak didukung dalam kueri yang sama.

Batas parameter prosedur atau fungsi

Babelfish mendukung maksimum 100 parameter untuk prosedur atau fungsi.

ROWGUIDCOL

Klausa ini diabaikan untuk sekarang. Kueri referensi $GUIDGOL menyebabkan kesalahan sintaks.

Dukungan objek SEQUENCE

Objek SEQUENCE didukung untuk tipe data tinyint, smallint, int, bigint, numerik, dan desimal.

Aurora PostgreSQL mendukung presisi ke 19 tempat untuk tipe data numerik dan desimal dalam SEQUENCE.

Peran tingkat server

Peran tingkat server sysadmin didukung. Peran tingkat server lainnya (selain sysadmin) tidak didukung.

Peran tingkat basis data selain db_owner

Peran db_owner tingkat basis data dan tingkat basis data yang ditentukan pengguna didukung. Peran tingkat basis data lainnya (selain db_owner) tidak didukung.

Kata kunci SPARSE SQL

Kata kunci SPARSE diterima dan diabaikan.

Klausa kata kunci SQL ON filegroup

Klausa ini diabaikan untuk sekarang.

Kata kunci SQL CLUSTERED dan NONCLUSTERED untuk indeks dan batasan

Babelfish menerima dan mengabaikan kata kunci CLUSTERED dan NONCLUSTERED.

sysdatabases.cmptlevel

sysdatabases.cmptlevel selalu diatur ke 120.

tempdb tidak diinisialisasi ulang saat restart

Objek permanen (seperti tabel dan prosedur) yang dibuat di tempdb tidak dihapus saat basis data dimulai ulang.

Kumpulan file TEXTIMAGE_ON

Babelfish mengabaikan klausa TEXTIMAGE_ON filegroup.

Ketepatan waktu

Babelfish mendukung presisi 6 digit untuk detik pecahan. Tidak ada efek samping yang diantisipasi dengan perilaku ini.

Tingkat isolasi transaksi

READUNCOMMITTED diperlakukan sama dengan READCOMMITTED.

Kolom komputasi virtual (nonpersisten)

Kolom komputasi virtual dibuat sebagai persisten.

Tanpa klausa SCHEMABINDING

Klausa ini tidak didukung dalam fungsi, prosedur, pemicu, atau tampilan. Objek dibuat, tetapi seolah-olah WITH SCHEMABINDING ditentukan.