Om du stöter på felmeddelande 491, nivå 16 "Ett korrelationsnamn måste anges för bulk-raduppsättningen i from-klausulen" i SQL Server, beror det förmodligen på att du försöker läsa en fil utan att använda ett korrelationsnamn.
När du använder OPENROWSET()
funktion med BULK
alternativet måste du ange ett korrelationsnamn (även känt som en intervallvariabel eller alias) i FROM
klausul.
För att åtgärda detta fel, ange bara ett korrelationsnamn/alias för din fråga.
Exempel på felet
Här är ett exempel på kod som orsakar det här felet.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
Resultat:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
Felet uppstod eftersom jag glömde att inkludera korrelationsnamnet.
Lösningen
Som nämnts, för att åtgärda detta problem, är allt vi behöver göra att tillhandahålla ett korrelationsnamn (även känt som en intervallvariabel eller alias).
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
Resultat:
+--------------+ | 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" } ] } } | +--------------+