MS-TDS/T-SQL Differences between Kusto and Microsoft SQL Server
Below is partial list of the main differences between Kusto and SQL Server's implementation of T-SQL.
CREATE, INSERT, DROP, ALTER statements
Kusto doesn't support schema modifications or data modifications through MS-TDS, nor does it support the above T-SQL statements.
Correlated sub-queries
Kusto doesn't support correlated sub-queries in SELECT, WHERE, and JOIN clauses.
TOP flavors
Kusto ignores WITH TIES and evaluates query as regular TOP.
Kusto doesn't support PERCENT.
Cursors
Kusto doesn't support SQL cursors.
Flow control
Kusto doesn't support flow control statements, except for a few limited cases,
such as IF THEN ELSE clause that has the identical schema for the THEN
and ELSE batches.
Data types
Depending on the query, the data returned may have a different type than in SQL Server.
An obvious example here are types such as TINYINT and SMALLINT that have no
equivalent in Kusto. Therefore, clients that expect a value of type BYTE or INT16
might get an INT32 or an INT64 value instead.
Column order in results
When asterix is used in the SELECT statement, the order of columns in each result set
may differ between Kusto and SQL Server. Client that use column names would work better in these cases.
If there is no asterix character in the SELECT statement, the column ordinals would be preserved.
Columns name in results
In T-SQL, multiple columns may have the same name. This is not allowed in Kusto. In case of a collision in names, the names of the columns might be different in Kusto. However, the original name would be preserved, at least for one of the columns.
ANY, ALL, and EXISTS predicates
Kusto doesn't support the predicates ANY, ALL, and EXISTS.
Recursive CTEs
Kusto doesn't support recursive common table expressions.
Dynamic SQL
Kusto doesn't support dynamic SQL statements (inline execution of SQL script generated by the query).
WITHIN GROUP
Kusto doesn't support WITHIN GROUP clause.
TRUNCATE function
TRUNCATE function (ODBC) in Kusto works similarly to ROUND, which means that the result will be the nearest value instead of the lower one returned in SQL.
Feedback
Submit and view feedback for