メモリ最適化テーブルとネイティブ コンパイル ストアド プロシージャは、ディスク ベース のテーブルおよびストアド プロシージャ Transact-SQL 解釈される完全な Transact-SQL サーフェス領域をサポートしていません。 サポートされていない機能を使用しようとすると、サーバーはエラーを返します。
エラー メッセージのテキストには、Transact-SQL ステートメントの種類 (機能、操作、オプションなど) と、機能名または Transact-SQL キーワード名が含まれます。 ほとんどのサポートされていない機能では、サポートされていない機能を示すエラー メッセージ テキストと共にエラー 10794 が返されます。 次の表に、エラー メッセージのテキストに表示される可能性がある Transact-SQL の機能およびキーワードと、エラーを解決するための修正措置を示します。
メモリ最適化テーブルとネイティブ コンパイル ストアド プロシージャでサポートされる機能の詳細については、次のトピックを参照してください。
インメモリ OLTP を使用するデータベース
次の表に、In-Memory OLTP データベースに関連するエラーのメッセージ テキストに表示できる Transact-SQL 機能とキーワードを示します。
タイプ | 名前 | 解決策 |
---|---|---|
選択肢 | 自動クローズ | データベース オプション AUTO_CLOSE=ON は、MEMORY_OPTIMIZED_DATA ファイル グループのあるデータベースではサポートされていません。 |
選択肢 | 添付再構築ログ | CREATE データベース オプション ATTACH_REBUILD_LOG は、MEMORY_OPTIMIZED_DATA ファイル グループのあるデータベースではサポートされていません。 |
特徴 | データベーススナップショット | データベース スナップショットの作成は、MEMORY_OPTIMIZED_DATA ファイル グループのあるデータベースではサポートされていません。 |
特徴 | sync_method 'database snapshot' または 'database snapshot character' の使用によるレプリケーション | sync_method 'database snapshot' または 'database snapshot character' の使用によるレプリケーションは、MEMORY_OPTIMIZED_DATA ファイル グループのあるデータベースではサポートされていません。 |
特徴 | DBCC CHECKDB DBCC CHECKTABLE |
DBCC CHECKDB では、データベース内のメモリ最適化テーブルがスキップされます。 DBCC CHECKTABLE は、メモリ最適化テーブルで失敗します。 |
メモリ最適化テーブル
次の表に、メモリ最適化テーブルに関連するエラーのメッセージ テキストに表示できる Transact-SQL 機能とキーワードと、エラーを解決するための修正アクションを示します。
タイプ | 名前 | 解決策 |
---|---|---|
特徴 | オン | メモリ最適化テーブルをファイル グループまたはパーティション構成に配置できません。
CREATE TABLE ステートメントから ON 句を削除します。 |
データの種類 | データ型名 | 指示されたデータ型はサポートされていません。 サポートされているデータ型に置き換えます。 詳細については、「 サポートされているデータ型」を参照してください。 |
特徴 | 計算列 | 計算列は、メモリ最適化テーブルではサポートされていません。
CREATE TABLE ステートメントから計算列を削除します。 |
特徴 | レプリケーション | レプリケーションはメモリ最適化テーブルではサポートされていません。 |
特徴 | FILESTREAM | FILESTREAM ストレージは、メモリ最適化テーブルのサポートされた列ではありません。 列定義から FILESTREAM キーワードを削除します。 |
特徴 | 希薄 | メモリ最適化テーブルの列を SPARSE として定義することはできません。 列定義から SPARSE キーワードを削除します。 |
特徴 | ROWGUIDCOL | ROWGUIDCOL オプションはメモリ最適化テーブルの列ではサポートされていません。 列定義から ROWGUIDCOL キーワードを削除します。 |
特徴 | 外部キー | FOREIGN KEY 制約は、メモリ最適化テーブルではサポートされていません。 テーブル定義から制約を削除します。 制約のサポート不足を軽減する方法については、「 Check 制約と外部キー制約の移行」を参照してください。 |
特徴 | 確認 | CHECK 制約は、メモリ最適化テーブルではサポートされていません。 テーブル定義から制約を削除します。 制約のサポート不足を軽減する方法については、「 Check 制約と外部キー制約の移行」を参照してください。 |
特徴 | ユニーク | UNIQUE 制約は、メモリ最適化テーブルではサポートされていません。 テーブル定義から制約を削除します。 制約のサポート不足を軽減する方法については、「Check 制約と外部キー制約の移行」を参照してください。 |
特徴 | カラムストア | COLUMNSTORE インデックスは、メモリ最適化テーブルではサポートされていません。 代わりに、NONCLUSTERED または NONCLUSTERED HASH インデックスを指定してください。 |
特徴 | クラスター化インデックス | 非クラスター化インデックスを指定します。 主キー インデックスの場合は、必ず PRIMARY KEY NONCLUSTERED [HASH] を指定してください。 |
特徴 | 1252 以外のコード ページ | データ型が char および varchar メモリ最適化テーブルの列では、コード ページ 1252 を使用する必要があります。 (var)char の代わりに n(var)char を使用するか、コード ページ 1252 で照合順序を使用します (たとえば、Latin1_General_BIN2)。 詳細については、「 照合順序とコード ページ」を参照してください。 |
特徴 | DDL 内部トランザクション | メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャは、ユーザー トランザクションのコンテキストで作成または削除できません。 トランザクションを開始せず、CREATE または DROP ステートメントを実行する前にセッション設定 IMPLICIT_TRANSACTION を OFF に設定していることを確認します。 |
特徴 | DDL トリガー | DDL 操作のサーバーまたはデータベース トリガーがある場合は、メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャを作成または削除できません。 CREATE/DROP TABLE および CREATE/DROP PROCEDURE のサーバーおよびデータベース トリガーを削除します。 |
特徴 | イベント通知 | DDL 操作のサーバーまたはデータベース イベント通知がある場合は、メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャを作成または削除できません。 CREATE TABLE または DROP TABLE および CREATE PROCEDURE または DROP PROCEDURE のサーバーおよびデータベース イベント通知を削除します。 |
特徴 | ファイルテーブル | メモリ最適化テーブルをファイル テーブルとして作成できません。
CREATE TABLE ステートメントから引数AS FileTable を削除する |
オペレーション | 主キー列の更新 | メモリ最適化テーブルおよびテーブル型の主キー列を更新できません。 主キーを更新する必要がある場合は、古い行を削除し、更新された主キーで新しい行を挿入します。 |
オペレーション | インデックスを作成 | メモリ最適化テーブルのインデックスは、 CREATE TABLE ステートメントを使用してインラインで指定する必要があります。 メモリ最適化テーブルにインデックスを追加するには、新しいインデックス指定を含め、テーブルを削除して再作成します。 |
オペレーション | テーブルを変更 | メモリ最適化テーブルの変更はサポートされていません。 更新されたテーブル定義を使用して、テーブルを削除して再作成します。 |
オペレーション | CREATE FULLTEXT INDEX … | フルテキスト インデックスは、メモリ最適化テーブルでサポートされていません。 |
オペレーション | スキーマの変更 | メモリ最適化テーブルとネイティブ コンパイル ストアド プロシージャでは、 sp_rename などの shema の変更はサポートされません。テーブルの名前を変更するなど、スキーマを変更しようとするとエラー 12320 が生成されます。スキーマ バージョンの変更を必要とする操作 (名前の変更など) は、メモリ最適化テーブルではサポートされていません。 スキーマを変更するには、更新された定義を使用してテーブルまたはプロシージャを削除して再作成します。 |
オペレーション | CREATE TRIGGER | メモリ最適化テーブルのトリガーはサポートされていません。 |
オペレーション | トランケート テーブル | メモリ最適化テーブルでは TRUNCATE 操作はサポートされません。 テーブルからすべての行を削除するには、 DELETE FROM table または drop を使用してすべての行を削除し、テーブルを再作成します。 |
オペレーション | オルター権限設定 | 既存のメモリ最適化テーブルまたはネイティブ コンパイル ストアド プロシージャでの所有者の変更はサポートされていません。 所有者を変更するには、テーブルまたはプロシージャを削除した後、再作成します。 |
オペレーション | ALTER SCHEMA | 既存のメモリ最適化テーブルまたはネイティブ コンパイル ストアド プロシージャのスキーマの変更はサポートされていません。 テーブルまたはプロシージャを削除して再作成し、スキーマを変更します。 |
オペレーション | DBCC CHECKTABLE | DBCC CHECKTABLE は、メモリ最適化テーブルではサポートされていません。 |
特徴 | ANSI_PADDING オフ | メモリ最適化テーブルまたはネイティブ コンパイル ストアド プロシージャを作成するときは、セッション オプション ANSI_PADDING ON にする必要があります。 CREATE ステートメントを実行する前に、 SET ANSI_PADDING ON を実行します。 |
選択肢 | データ圧縮 | データ圧縮は、メモリ最適化テーブルではサポートされていません。 テーブル定義からオプションを削除します。 |
特徴 | DTC | メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャは、分散トランザクションからアクセスできません。 代わりに SQL トランザクションを使用してください。 |
特徴 | 複数のアクティブな結果セット (MARS) | メモリ最適化テーブルでは、複数のアクティブな結果セット (MARS) はサポートされていません。 このエラーは、リンク サーバーの使用を示すこともできます。 リンク サーバーでは MARS を使用できます。 リンク サーバーは、メモリ最適化テーブルではサポートされていません。 代わりに、メモリ最適化テーブルをホストするサーバーとデータベースに直接接続します。 |
オペレーション | MERGE のターゲットとしてのメモリ最適化テーブル | メモリ最適化テーブルを MERGE 操作のターゲットにすることはできません。 代わりに、 INSERT 、 UPDATE 、または DELETE ステートメントを使用します。 |
メモリ最適化テーブルのインデックス
次の表に、メモリ最適化テーブルのインデックスに関連したエラー メッセージのテキストに表示される可能性がある Transact-SQL の機能およびキーワードと、エラーを解決するための修正措置を示します。
タイプ | 名前 | 解決策 |
---|---|---|
特徴 | フィルターがかかったインデックス | フィルター選択されたインデックスは、メモリ最適化テーブルでサポートされていません。 インデックス指定から WHERE 句を省略します。 |
特徴 | ユニーク | メモリ最適化テーブルでは、一意のインデックスはサポートされていません。 インデックス指定から引数 UNIQUE を削除します。 |
特徴 | NULL対応列 | メモリ最適化テーブルのインデックスのキー内のすべての列は、 NOT NULL として指定する必要があります。 インデックス キーのすべての列に NOT NULL 制約を含めます。 |
特徴 | bin2 以外の照合順序 | メモリ最適化インデックスのキー内のすべての文字列は、BIN2 照合順序を使用して宣言する必要があります。
COLLATE 句を使用して、列定義の照合順序を設定します。 詳細については、「 照合順序とコード ページ」を参照してください。 |
特徴 | インクルードされた列 | 付加列の指定は、メモリ最適化テーブルにとって必須ではありません。 メモリ最適化テーブルのすべての列は、各メモリ最適化インデックスに暗黙的に含まれています。 |
オペレーション | インデックスを変更 | メモリ最適化テーブルでのインデックスの変更はサポートされていません。 代わりに、テーブルを削除し、更新されたインデックス仕様を使用して再作成します。 |
オペレーション | インデックス削除 | メモリ最適化テーブルのインデックスの削除はサポートされていません。 代わりに、テーブルを削除し、目的のインデックスを使用して再作成します。 |
インデックス オプション | インデックス オプション | 指定されたインデックス オプションは、メモリ最適化テーブルのインデックスではサポートされていません。 インデックス指定からオプションを削除します。 |
非クラスター化ハッシュ インデックス
次の表に、非クラスター化ハッシュ インデックスに関連したエラー メッセージのテキストに表示される可能性がある Transact-SQL の機能およびキーワードと、エラーを解決するための修正措置を示します。
タイプ | 名前 | 解決策 |
---|---|---|
選択肢 | ASC/DESC | 非クラスター化ハッシュ インデックスは順序付けされません。 キーワードの ASC と DESC をインデックス キーの指定から削除します。 |
ネイティブ コンパイル ストアド プロシージャ
次の表に、ネイティブ コンパイル ストアド プロシージャに関連するエラーのメッセージ テキストに表示できる Transact-SQL 機能とキーワードと、エラーを解決するための修正アクションを示します。
タイプ | 特徴 | 解決策 |
---|---|---|
特徴 | インライン テーブル変数 | テーブル型は、変数宣言を使用してインラインで宣言できません。 テーブル型は、 CREATE TYPE ステートメントを使用して明示的に宣言する必要があります。 |
特徴 | カーソル | カーソルは、ネイティブ コンパイル ストアド プロシージャではサポートされていません。 -クライアントからプロシージャを実行する場合は、カーソル API ではなく RPC を使用します。 ODBC では、Transact-SQL ステートメント EXECUTE 避け、代わりにプロシージャの名前を直接指定します。-Transact-SQL バッチまたは別のストアド プロシージャからプロシージャを実行する場合は、ネイティブ コンパイル ストアド プロシージャでカーソルを使用しないでください。 -カーソルを使用するのではなく、ネイティブ コンパイル ストアド プロシージャを作成する場合は、セット ベースのロジックまたは WHILE ループを使用します。 |
特徴 | 定数以外のパラメーターの既定値 | ネイティブ コンパイル ストアド プロシージャのパラメーターで既定値を使用する場合、値は定数にする必要があります。 パラメーター宣言からワイルドカードを削除します。 |
特徴 | 外部 | CLR ストアド プロシージャをネイティブでコンパイルすることはできません。 CREATE PROCEDURE ステートメントから AS EXTERNAL 句または NATIVE_COMPILATION オプションを削除します。 |
特徴 | 番号付きストアド プロシージャ | ネイティブ コンパイル ストアド プロシージャには番号を付けられません。
CREATE PROCEDURE ステートメントから ; number を削除します。 |
特徴 | 複数行 INSERT ...VALUES ステートメント | ネイティブ コンパイル ストアド プロシージャで同じ INSERT ステートメントを使用して複数の行を挿入することはできません。 各行 INSERT ステートメントを作成します。 |
特徴 | 共通テーブル式 (CTE) | 共通テーブル式 (CTE) は、ネイティブ コンパイル ストアド プロシージャでサポートされません。 クエリを書き直します。 |
特徴 | サブクエリ | サブクエリ (別のクエリ内に入れ子になったクエリ) はサポートされていません。 クエリを書き直します。 |
特徴 | 計算する |
COMPUTE 句はサポートされていません。 クエリから削除します。 |
特徴 | SELECT INTO |
INTO 句は、SELECT ステートメントではサポートされていません。 クエリを INSERT INTO TableSELECT として書き直します。 |
特徴 | アウトプット |
OUTPUT 句はサポートされていません。 クエリから削除します。 |
特徴 | 不完全な挿入列リスト |
INSERT ステートメントでは、テーブル内のすべての列に値を指定する必要があります。 |
機能 | 関数 | 組み込み関数は、ネイティブ コンパイル ストアド プロシージャではサポートされていません。 ストアド プロシージャから関数を削除します。 サポートされている組み込み関数の詳細については、「 ネイティブ コンパイル ストアド プロシージャ」を参照してください。 |
特徴 | ケース |
CASE ステートメントは、ネイティブ コンパイル ストアド プロシージャ内のクエリではサポートされていません。 各ケースのクエリを作成します。 詳細については、「 CASE ステートメントの実装」を参照してください。 |
特徴 | ユーザー定義関数 | ユーザー定義関数は、ネイティブ コンパイル ストアド プロシージャでは使用できません。 プロシージャ定義から関数への参照を削除します。 |
特徴 | ユーザー定義集計 | ユーザー定義集計関数はネイティブ コンパイル ストアド プロシージャ内で使用できません。 プロシージャから関数への参照を削除します。 |
特徴 | ブラウズ モード メタデータ | ネイティブ コンパイル ストアド プロシージャでは、ブラウズ モード メタデータはサポートされていません。 セッション オプション NO_BROWSETABLE が OFF に設定されていることを確認します。 |
特徴 | FROM 句と DELETE |
FROM 句は、ネイティブ コンパイル ストアド プロシージャ内のテーブル ソースを持つDELETE ステートメントではサポートされていません。DELETE は、削除するテーブルを示すために使用される場合、FROM 句としてサポートされます。 |
特徴 | FROM 句と UPDATE | ネイティブ コンパイル ストアド プロシージャのUPDATE ステートメントでは、FROM 句はサポートされていません。 |
特徴 | 一時プロシージャ | 一時ストアド プロシージャはネイティブでコンパイルできません。 永続的なネイティブ コンパイル ストアド プロシージャまたは一時的に解釈された Transact-SQL ストアド プロシージャを作成します。 |
分離レベル | READ UNCOMMITTED(読み取り処理が未コミットのトランザクションからも許可される状態) | ネイティブ コンパイル ストアド プロシージャに対して分離レベル READ UNCOMMITTED はサポートされません。 SNAPSHOT など、サポートされる分離レベルを使用します。 |
分離レベル | リードコミット | ネイティブ コンパイル ストアド プロシージャに対して分離レベル READ UNCOMMITTED はサポートされません。 SNAPSHOT など、サポートされる分離レベルを使用します。 |
特徴 | 一時テーブル | tempdb 内のテーブルはネイティブ コンパイル ストアド プロシージャ内では使用できません。 代わりに、テーブル変数または DURABILITY=SCHEMA_ONLY のメモリ最適化テーブルを使用します。 |
特徴 | 火星 | ネイティブ コンパイル ストアド プロシージャでは、複数のアクティブな結果セット (MARS) はサポートされていません。 このエラーは、リンク サーバーの使用を示すこともできます。 リンク サーバーでは MARS を使用できます。 リンク サーバーは、ネイティブ コンパイル ストアド プロシージャではサポートされていません。 代わりに、ネイティブ コンパイル ストアド プロシージャをホストするサーバーとデータベースに直接接続します。 |
特徴 | DTC | メモリ最適化テーブルおよびネイティブ コンパイル ストアド プロシージャは、分散トランザクションからアクセスできません。 代わりに SQL トランザクションを使用してください。 |
特徴 | bin2 以外のコレーション | ネイティブ コンパイル ストアド プロシージャ内の文字列に対する比較、並べ替え、その他の操作では、BIN2 照合順序を使用する必要があります。 COLLATE 句を使用するか、適切な照合順序で列と変数を使用します。 詳細については、「 照合順序とコード ページ」を参照してください。 |
特徴 | SC 照合順序による文字列の切り捨て。 |
_SC 照合順序を持つ文字列は、UTF-16 エンコードを使用します。 長さが短い n(var)char 値を n(var)char 値に変換するには、切り捨てが必要です。 これは、ネイティブ コンパイル ストアド プロシージャの UTF-16 値ではサポートされていません。 UTF-16 文字列の切り捨てを避けます。 |
特徴 | 再コンパイルで実行する |
WITH RECOMPILE オプションは、ネイティブ コンパイル ストアド プロシージャではサポートされていません。 |
特徴 | 引数としてSC照合順序を持つLEN関数とSUBSTRING関数 | _SC照合順序を持つ文字列は、UTF-16 エンコードを使用します。 組み込み関数 LEN と SUBSTRING は、ネイティブ コンパイル ストアド プロシージャ内で使用される場合、UTF-16 エンコードをサポートしていません。 別の照合順序を使用するか、これらの関数を使用しないでください。 |
特徴 | 専用管理者接続からの実行 | ネイティブ コンパイル ストアド プロシージャでは、専用管理者接続 (DAC) から実行することはできません。 通常の接続を使用してください。 |
オペレーション | ALTER PROCEDURE | ネイティブ コンパイル ストアド プロシージャは変更できません。 プロシージャ定義を変更するには、ストアド プロシージャを削除して再作成します。 |
オペレーション | セーブポイント | ネイティブ コンパイル ストアド プロシージャは、アクティブなセーブポイントを含むトランザクションから呼び出すことはできません。 トランザクションからセーブポイントを削除します。 |
オペレーション | オルター権限設定 | 既存のメモリ最適化テーブルまたはネイティブ コンパイル ストアド プロシージャでの所有者の変更はサポートされていません。 所有者を変更するには、テーブルまたはプロシージャを削除した後、再作成します。 |
オペレーター | OPENROWSET | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OPENROWSET を削除します。 |
オペレーター | OPENQUERY | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OPENQUERY を削除します。 |
オペレーター | OPENDATASOURCE | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OPENDATASOURCE を削除します。 |
オペレーター | OPENXML (オープンXML形式) | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OPENXML を削除します。 |
オペレーター | CONTAINSTABLE | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから CONTAINSTABLE を削除します。 |
オペレーター | FREETEXTTABLE | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから FREETEXTTABLE を削除します。 |
特徴 | テーブル値関数 | テーブル値関数はネイティブ コンパイル ストアド プロシージャから参照できません。 この制限に関する対処方法の 1 つは、プロシージャの本体にテーブル値関数のロジックを追加することです。 |
オペレーター | 変換テーブル | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから CHANGETABLE を削除します。 |
オペレーター | ゴートゥ | この演算子はサポートされていません。 WHILE など他の構造を使用します。 |
オペレーター | EXECUTE、INSERT EXEC | ネイティブにコンパイルされたストアドプロシージャの入れ子はサポートされていません。 必要な操作は、ストアド プロシージャ定義の一部としてインラインで指定できます。 |
オペレーター | 相殺 | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OFFSET を削除します。 |
オペレーター | 組合 | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから UNION を削除します。 複数の結果セットを 1 つの結果セットに結合するには、テーブル変数を使用します。 |
オペレーター | 交点 | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから INTERSECT を削除します。 場合によっては INNER JOIN を使用して同じ結果を得ることができます。 |
オペレーター | 除く | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから EXCEPT を削除します。 |
オペレーター | 外部結合 (OUTER JOIN) | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから OUTER JOIN を削除します。 詳細については、「 外部結合の実装」を参照してください。 |
オペレーター | 申し込む | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから APPLY を削除します。 |
オペレーター | ピボット | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから PIVOT を削除します。 |
オペレーター | アンピボット | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから UNPIVOT を削除します。 |
オペレーター | または、IN | ネイティブ コンパイル ストアド プロシージャのクエリの WHERE 句では、論理和 (OR、IN) はサポートされていません。 各ケースのクエリを作成します。 |
オペレーター | 含む | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから CONTAINS を削除します。 |
オペレーター | FREETEXT | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから FREETEXT を削除します。 |
オペレーター | いいえ | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから NOT を削除します。 場合によっては、 NOT を不等値に置き換えることができます。 たとえば、NOT a=b は a!=b に置き換えることができます。 |
オペレーター | TSEQUAL | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから TSEQUAL を削除します。 |
オペレーター | いいね | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから LIKE を削除します。 |
オペレーター | 次の値 | シーケンスは、ネイティブ コンパイル ストアド プロシージャ内で参照できません。 解釈された Transact-SQL を使用して値を取得し、それをネイティブ コンパイル ストアド プロシージャに渡します。 詳細については、「 メモリ最適化テーブルへの IDENTITY の実装」を参照してください。 |
SET オプション | オプション | SET オプションは、ネイティブ コンパイル ストアド プロシージャ内で変更できません。 特定のオプションは BEGIN ATOMIC ステートメントで設定できます。 詳細については、 ネイティブ コンパイル ストアド プロシージャのアトニック ブロックに関するセクションを参照してください。 |
オペランド | テーブルサンプル | この演算子はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから TABLESAMPLE を削除します。 |
選択肢 | 再 コンパイル | ネイティブ コンパイル ストアド プロシージャは、作成時にコンパイルされます。 ネイティブ コンパイル ストアド プロシージャを再コンパイルするには、削除して再作成します。 プロシージャ定義から RECOMPILE を削除します。 |
選択肢 | 暗号化 | このオプションはサポートされていません。 プロシージャ定義から ENCRYPTION を削除します。 |
選択肢 | レプリケーション用 | ネイティブ コンパイル ストアド プロシージャはレプリケーション用に作成できません。 プロシージャ定義から FOR REPLICATION を削除しました。 |
選択肢 | FOR XML | このオプションはサポートされていません。 ネイティブ コンパイル ストアド プロシージャから FOR XML を削除します。 |
選択肢 | 参照用 | このオプションはサポートされていません。 ネイティブ コンパイル ストアド プロシージャから FOR BROWSE を削除します。 |
結合ヒント | HASH、MERGE | ネイティブ コンパイル ストアド プロシージャは、入れ子になったループ結合のみをサポートします。 HASH および MERGE 結合はサポートされていません。 結合ヒントを削除します。 |
クエリ ヒント | クエリ ヒント | このクエリ ヒントはネイティブ コンパイル ストアド プロシージャ内にありません。 サポートされているクエリ ヒントについては、「クエリ ヒント (Transact-SQL)」を参照してください。 |
選択肢 | 独特 | このオプションはサポートされていません。 ネイティブ コンパイル ストアド プロシージャのクエリから DISTINCT を削除します。 |
選択肢 | パーセント | このオプションは、 TOP 句ではサポートされていません。 ネイティブ コンパイル ストアド プロシージャのクエリから PERCENT を削除します。 |
選択肢 | つながりがある | このオプションは、 TOP 句ではサポートされていません。 ネイティブ コンパイル ストアド プロシージャのクエリから WITH TIES を削除します。 |
集計関数 | 集計関数 | この句はサポートされていません。 ネイティブ コンパイル ストアド プロシージャの集計関数の詳細については、「 ネイティブ コンパイル ストアド プロシージャ」を参照してください。 |
順位付け関数 | 順位付け関数 | 順位付け関数は、ネイティブ コンパイル ストアド プロシージャではサポートされていません。 プロシージャの定義から削除します。 |
機能 | 関数 | この関数はサポートされていません。 ネイティブ コンパイル ストアド プロシージャから削除します。 |
ステートメント | ステートメント | このステートメントはサポートされていません。 ネイティブ コンパイル ストアド プロシージャから削除します。 |
特徴 | バイナリおよび文字列で使用される MIN と MAX | 集計関数 MIN および MAX は、ネイティブ コンパイル ストアド プロシージャ内の文字とバイナリ文字列の値には使用できません。 |
特徴 | 集計関数を使用しない GROUP BY | ネイティブ コンパイル ストアド プロシージャでは、クエリに GROUP BY 句がある場合、クエリでは SELECT 句または HAVING 句でも集計関数を使用する必要があります。 クエリに集計関数を追加します。 |
特徴 | 全てでグループ化 | ALL は、ネイティブ コンパイル ストアド プロシージャ内の GROUP BY 句では使用できません。 GROUP BY 句から ALL を削除します。 |
特徴 | GROUP BY () | 空のリストによる GROUP BY はサポートされていません。 GROUP BY 句を削除するか、グループ化リストに列を含めます。 |
特徴 | ROLLUP |
ROLLUP は、ネイティブ コンパイル ストアド プロシージャの GROUP BY 句では使用できません。 プロシージャ定義から ROLLUP を削除します。 |
特徴 | キューブ |
CUBE は、ネイティブ コンパイル ストアド プロシージャの GROUP BY 句では使用できません。 プロシージャ定義から CUBE を削除します。 |
特徴 | グルーピングセット |
GROUPING SETS は、ネイティブ コンパイル ストアド プロシージャの GROUP BY 句では使用できません。 プロシージャ定義から GROUPING SETS を削除します。 |
特徴 | BEGIN TRANSACTION、COMMIT TRANSACTION、ROLLBACK TRANSACTION | ATOMIC ブロックを使用してトランザクションおよびエラー処理を制御します。 詳細については、「 Atomic Blocks」を参照してください。 |
特徴 | インライン テーブル変数の宣言。 | テーブル変数は、明示的に定義されたメモリ最適化テーブル型を参照する必要があります。 メモリ最適化テーブル型を作成し、(インライン型を指定する変わりに) 変数の宣言でその型を使用します。 |
特徴 | sp_recompile | ネイティブ コンパイル ストアド プロシージャの再コンパイルはサポートされていません。 プロシージャを削除して再作成します。 |
特徴 | 呼び出し元として実行 |
EXECUTE AS 句が必要です。 ただし、 EXECUTE AS CALLER はサポートされていません。
EXECUTE AS OWNER 、EXECUTE AS ユーザー、またはEXECUTE AS SELF を使用します。 |
特徴 | ディスク ベース テーブル | ディスク ベース テーブルには、ネイティブ コンパイル ストアド プロシージャからアクセスできません。 ネイティブ コンパイル ストアド プロシージャからディスク ベースのテーブルへの参照を削除します。 または、ディスク ベース テーブルをメモリ最適化テーブルに移行します。 |
特徴 | 見解 | ビューには、ネイティブ コンパイル ストアド プロシージャからアクセスできません。 ビューではなく、基になるベース テーブルを参照します。 |
特徴 | テーブル値関数 | テーブル値関数は、ネイティブ コンパイル ストアド プロシージャからアクセスできません。 ネイティブ コンパイル ストアド プロシージャからテーブル値関数への参照を削除します。 |
メモリ最適化テーブルにアクセスするトランザクション
次の表に、メモリ最適化テーブルにアクセスするトランザクションに関連したエラー メッセージのテキストに表示される可能性がある Transact-SQL の機能およびキーワードと、エラーを解決するための修正措置を示します。
タイプ | 名前 | 解決策 |
---|---|---|
特徴 | セーブポイント | メモリ最適化テーブルにアクセスするトランザクション内での明示的なセーブポイントの作成はサポートされていません。 |
特徴 | バインドされたトランザクション | バインドされたセッションは、メモリ最適化テーブルにアクセスするトランザクションに参加できません。 プロシージャを実行する前にセッションをバインドしないでください。 |
特徴 | DTC | メモリ最適化テーブルにアクセスするトランザクションは、分散トランザクションにすることはできません。 |