SQLines tools can help you transfer data, convert database schema (DDL), views, stored procedures, functions, triggers, queries and SQL scripts from Microsoft SQL Server (MSSQL, MS SQL), Azure SQL Database, Azure Synapse to MariaDB.
Databases:
Converting SQL language elements:
SQL Server | MariaDB | |||
1 | string + string2 + … | String concatenation | CONCAT(string, string2, …) | |
2 | @@IDENTITY | Returns the last-inserted identity value | LAST_INSERT_ID() |
Character data types:
SQL Server | MariaDB | |||||
1 | NTEXT | Variable-length Unicode UCS-2 data, <= 2G | LONGTEXT |
Numeric data types:
SQL Server | MariaDB | |||||
1 | BIGINT | 64-bit integer | BIGINT | |||
2 | DECIMAL(p,s) | Fixed-point number | DECIMAL(p,s) | |||
3 | DOUBLE PRECISION | Double-precision floating-point number | DOUBLE PRECISION | |||
4 | FLOAT(p) | Floating-point number | DOUBLE | |||
5 | INT, INTEGER | 32-bit integer | INT, INTEGER | |||
6 | MONEY | 64-bit currency amount | DECIMAL(15,4) | |||
7 | NUMERIC(p,s) | Fixed-point number | NUMERIC(p,s) | |||
8 | REAL | Single-precision floating-point number | REAL | |||
9 | SMALLINT | 16-bit integer | SMALLINT | |||
10 | SMALLMONEY | 32-bit currency amount | DECIMAL(6,4) | |||
11 | TINYINT | 8-bit unsigned integer, 0 to 255 | TINYINT UNSIGNED |
Datetime data types:
Converting functions from SQL Server to MariaDB:
SQL Server | MariaDB | ||
1 | CONVERT(DATETIME, string, style) | Convert string to datetime | STR_TO_DATE(string, format) |
CONVERT(DATETIME, string) | CONVERT(string, DATETIME) | ||
2 | CONVERT(VARCHAR, datetime, style) | Convert datetime to string | DATE_FORMAT(datetime, format) |
3 | DATEADD(unit, value, exp) | Add datetime interval | TIMESTAMPADD(unit, value, exp) |
4 | GETDATE() | Get the current date and time | NOW() |
Modifying a table:
SQL Server | MariaDB | ||
1 | ALTER TABLE table ADD DEFAULT exp FOR column | Add column default | Moved to CREATE TABLE ![]() |
Converting Transact-SQL stored procedures:
For further information, see Conversion of Transact-SQL Statements.
Converting Transact-SQL statements from SQL Server to MariaDB:
Variable declaration and assignment:
SQL Server | MariaDB | |
1 | DECLARE @var [AS] type [= default_value] | DECLARE var type [DEFAULT default_value] |
2 | DECLARE @v1 type1, @v2 type2, … | DECLARE v1 type1; DECLARE v2 type2, DECLARE … |
3 | DECLARE @tab TABLE | CREATE TEMPORARY TABLE vtab |
4 | SET @var = expression | SET var = expression |
5 | SET @var = (SELECT expression FROM …) | SET var = (SELECT expression FROM …) |
Flow-of-control statements:
SQL Server | MariaDB | ||
1 | BREAK | Exit a loop | LEAVE label |
2 | IF condition BEGIN … END | IF statement | IF condition THEN … END IF; |
3 | IF … ELSE IF … | IF ELSE IF statement | IF … ELSEIF … |
4 | WHILE condition BEGIN stmts END | Conditional loop | WHILE condition DO stmts END WHILE; |
Transaction statements:
SQL Server | MariaDB | ||
1 | BEGIN TRANSACTION | TRAN | Begin a transaction | START TRANSACTION |
2 | COMMIT TRANSACTION | TRAN | Commit transaction | COMMIT |
3 | ROLLBACK TRANSACTION | TRAN | Rollback transaction | ROLLBACK |
Converting system procedure calls from SQL Server to MariaDB:
SQL Server | MariaDB | ||
1 | sp_addextendedproperty 'MS_Description', 'Table comment', … 'table', 'table_name' | Comment on table | ALTER TABLE table_name COMMENT 'Table comment' |