Pokud narazíte na chybu Msg 491, Level 16 „Pro hromadnou sadu řádků v klauzuli from musí být zadán název korelace“, je to pravděpodobně proto, že se pokoušíte číst soubor bez použití názvu korelace.
Když použijete OPENROWSET() funkce s BULK musíte zadat název korelace (známý také jako proměnná rozsahu nebo alias) v FROM doložka.
Chcete-li tuto chybu opravit, jednoduše zadejte název/alias korelace pro váš dotaz.
Příklad chyby
Zde je příklad kódu, který tuto chybu způsobuje.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
); Výsledek:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
K chybě došlo, protože jsem zapomněl uvést název korelace.
Řešení
Jak již bylo zmíněno, k vyřešení tohoto problému stačí zadat název korelace (známý také jako proměnná rozsahu nebo alias).
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias; Výsledek:
+--------------+
| 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" }
]
}
} |
+--------------+