sql >> データベース >  >> RDS >> Sqlserver

修正方法「from句のバルク行セットに相関名を指定する必要があります。」 SQLServerで

    SQL Serverでエラーメッセージ491、レベル16「from句の一括行セットに相関名を指定する必要があります」が発生した場合は、相関名を使用せずにファイルを読み取ろうとしていることが原因である可能性があります。

    OPENROWSET()を使用する場合 BULKで機能する オプションの場合、FROMに相関名(範囲変数またはエイリアスとも呼ばれます)を指定する必要があります 条項。

    このエラーを修正するには、クエリの相関名/エイリアスを指定するだけです。

    エラーの例

    このエラーの原因となるコードの例を次に示します。

    SELECT BulkColumn FROM OPENROWSET (
        BULK '/var/opt/mssql/bak/pets.json', 
        SINGLE_CLOB
        );

    結果:

    Msg 491, Level 16, State 1, Line 4
    A correlation name must be specified for the bulk rowset in the from clause.

    相関名を含めるのを忘れたため、エラーが発生しました。

    ソリューション

    前述のように、この問題を修正するには、相関名(範囲変数またはエイリアスとも呼ばれます)を指定するだけです。

    SELECT BulkColumn FROM OPENROWSET (
        BULK '/var/opt/mssql/bak/pets.json', 
        SINGLE_CLOB
        ) AS MyAlias;

    結果:

    +--------------+
    | BulkColumn   |
    |--------------|
    | { 
        "pets" : {
                "cats" : [
                { "id" : 1, "name" : "Fluffy", "sex" : "Female" },
                { "id" : 2, "name" : "Long Tail", "sex" : "Female" },
                { "id" : 3, "name" : "Scratch", "sex" : "Male" }
            ],
                "dogs" : [
                { "id" : 1, "name" : "Fetch", "sex" : "Male" },
                { "id" : 2, "name" : "Fluffy", "sex" : "Male" },
                { "id" : 3, "name" : "Wag", "sex" : "Female" }
            ]
        }
    }              |
    +--------------+

    1. T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?

    2. PostgreSQLとOracleGTTの一時テーブルの比較

    3. Oracleでテーブルのインデックスを見つける方法

    4. SCUMMダッシュボードを使用したMySQLの効果的な監視:パート1