Modern DBMSs implement several advanced features. While an SQL standard exists, the complete feature list is different for every database system. Sometimes different features allow achieving the same purpose, but with a different logic and different limitations. This is something to take into account when planning a migration.
Some features are implemented by different DBMSs, with a similar logic and similar syntax. But there could be important differences that users should be aware of.
This page has a list of SQL Server features that MariaDB implements in a different way, and SQL Server features for which MariaDB has an alternative feature. Minor differences are not taken into account here. The list is not exhaustive.
SNAPSHOT isolation level is not supported. Instead, you can use START TRANSACTION WITH CONSISTENT SNAPSHOT to acquire a snapshot at the beginning of the transaction. This is compatible with all isolation levels. See How Isolation Levels are Implemented in MariaDB. HASH indexes. BTREE, and depending on how they are used, InnoDB could convert them from BTree to hash indexes, or the other way around. This happens in the background. BTREE keyword. NOT FOR REPLICATION IF EXISTS syntax allows one to easily create a table on the master that already exists (possibly in a different version) on a slave. OUTPUT clause. Instead, we can use DELETE RETURNING and, since MariaDB 10.5, INSERT RETURNING and REPLACE RETURNING.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/sql-server-features-implemented-differently-in-mariadb/