SQL Server Features Not Available in MariaDB
You are viewing an old version of this article. View
the current version here.
Contents
When planning a migration between different DBMSs, one of the most important aspects to consider is that the new database system will probably miss some features supported by the old one. This is not relevant for all users. The most widely used features are supported by most DBMSs. However, it is important to make a list of unsupported features and check which of them are currently used by applications. In most cases it is possible to implement such features on the application side, or simply stop using them.
This page has a list of SQL Server features that are not supported in MariaDB. The list is not exhaustive.
Introduced in SQL Server versions older than 2016
- Full outer joins.
GROUP BY CUBE
syntax.MERGE
statement.- In MariaDB, indexes are always ascending. Defining them as
ASC# or
DESChas no effect.
- For single-columns indexes, the performance difference between an
ORDER BY ... ASC
andDESC
is negligible. - For multiple-columns indexes, an index may be unusable for certain queries because
DESC
is not supported. In some cases, a generated column can be used to invert the order of an index (for example, the expression0 - price
can be indexed to index the prices in a descending order).
- For single-columns indexes, the performance difference between an
- The
WITH
syntax is currently only supported for theSELECT
statement. - Filtered indexes (
CREATE INDEX ... WHERE
). - Autonomous transactions.
- User-Defined Types.
- Rules.
- Triggers on DDL and login;
INSTEAD OF
triggers,DISABLE TRIGGER
. - Cursors advanced features.
- Global cursors.
DELETE ... CURRENT OF
,UPDATE ... CURRENT OF
statements: MariaDB cursors are read-only.- Specifying a direction (MariDB cursors can only advance by one row).
- Synonyms.
- Table variables.
- Queues.
- XML indexes, XML schema collection, XQuery.
- User access to system functionalities, for example:
- Running system commands (
xp_cmdshell()
). - Sending emails (
sp_send_dbmail()
). - Sending HTTP requests.
- Running system commands (
- External languages, external libraries (MariaDB only supports procedural SQL and PL/SQL).
- Negative permissions (the
DENY
command). - Snapshot replication. See Provisioning a Slave.
Introduced in SQL Server 2016
- Native data masking
- PolyBase (however, MariaDB supports accessing Amazon S3 via the S3 storage engine and several DBMSs via CONNECT)
- R and Python services
- ColumnStore indexes. MariaDB has a storage engine called ColumnStore, but this is a completely different feature.
Introduced in SQL Server 2017
- Adaptive joins
- Graph SQL
Introduced in SQL Server 2019
See also
Comments
Comments loading...
Content reproduced on this site is the property of its respective owners,
and this content is not reviewed in advance by MariaDB. The views, information and opinions
expressed by this content do not necessarily represent those of MariaDB or any other party.