2

私の Azure SQL DB には、外部テーブル (これtableName_origDataを呼び出しましょう) があり、別のテーブルがありますtableName

tableNameCREATE(元の場所にある)から生成されたスクリプトを使用して作成されたtableName_origDataので、すべての列の型が同一であることを確認できます。

ただし、実行すると

INSERT INTO tableName (
    [list of column names]
)
SELECT
    [same list of column names]
FROM
    tableName_origData

次の例外が発生します。

ラージ オブジェクト列のサポートは、nvarchar(max) データ型のみに制限されています。

Azure SQL のデータ型を理解している限り、NVARCHAR(MAX) よりも大きいものはありません。さらに、メッセージは NVARCHAR(MAX)サポートされていることを意味します (そして、同じスクリプトが NVARCHAR(MAX) を含む他のテーブルでも機能することがわかります)。

この例外の原因と、そのデータを同一のテーブルに挿入するために何をする必要があるかを誰かがよりよく説明できますか?

テーブルで使用されるすべての列タイプのリストを次に示します。

BIGINT×3
NCHAR(20)×1
NVARCHAR(45)×5
NVARCHAR(100)×14
NVARCHAR(MAX)×10

4

1 に答える 1

1

外部テーブルは読み取り専用です。開発者はデータを選択できますが、いかなる形式の DML 処理も実行できません

この問題を解決するには、次の手法を使用してください。

https://technology.amis.nl/2005/04/05/updateable-external-tables/

警告: 最も単純な用途でない限り、この手法を深刻なアプリケーションに使用することはお勧めしません

于 2016-10-25T07:41:52.463 に答える