Kusto と Microsoft SQL Server の間の MS-TDS/T-SQL の相違点

Kusto と SQL Server による T-SQL の実装の主な相違点の一部を以下に示します。

CREATE、INSERT、DROP、ALTER ステートメント

Kusto は、MS-TDS によるスキーマの変更やデータの変更をサポートしていません。また、上記の T-SQL ステートメントもサポートしていません。

相関サブクエリ

Kusto は、SELECTWHERE、および JOIN の句での相関サブクエリはサポートしていません。

トップフレーバー

Kusto は、WITH TIES を無視し、クエリを標準 TOP として評価します。 Kusto は PERCENT をサポートしていません。

カーソル

Kusto は SQL カーソルをサポートしていません。

フロー制御

Kusto はフロー制御ステートメントをサポートしていません。ただし、THENELSE のバッチに同一のスキーマを持つIFTHENELSE句など、例外となるケースがいくつかあります。

データ型

クエリによって、返されるデータ型が SQL Server とは異なる場合があります。 ここで、わかりやすい例として、Kusto に同等のものがない TINYINTSMALLINT などの型があります。 したがって、型 BYTE または INT16 の値を予期しているクライアントは、INT32 または INT64 の値を取得することがあります。

結果の列の順序

SELECT ステートメントでアスタリスクを使用する場合、各結果セットの列の順序が Kusto と SQL Server で異なる場合があります。 このような場合、列名を使用するクライアントの方が適しています。 SELECT ステートメントにアスタリスク文字がない場合は、列の列序数が保持されます。

結果の列名

T-SQL では、複数の列に同じ名前を付けることができます。 これは Kusto では許可されていません。 名前の競合が発生した場合、Kusto では列の名前が異なる場合があります。 ただし、少なくとも1つの列に対して、元の名前が保持されます。

ANY、ALL、および EXISTS 述語

Kusto は、述語 ANYALL、および EXISTS をサポートしていません。

再帰 CTE

Kusto は、再帰共通テーブル式をサポートしていません。

動的 SQL

Kusto は、動的 SQL ステートメント (クエリによって生成される SQL スクリプトのインライン実行) をサポートしていません。

WITHIN GROUP

Kusto は WITHIN GROUP の句をサポートしていません。

TRUNCATE 関数

Kusto の TRUNCATE 関数 (ODBC) は、ROUND と同様に動作します。これは、結果が SQL で返される小さい方の値ではなく、最も近い値になることを意味します。