Hvis du støder på fejlmeddelelse 491, niveau 16 "Et korrelationsnavn skal angives for bulk-rækkesættet i fra-klausulen" i SQL Server, er det sandsynligvis fordi du forsøger at læse en fil uden at bruge et korrelationsnavn.
Når du bruger OPENROWSET()
funktion med BULK
mulighed, skal du angive et korrelationsnavn (også kendt som en intervalvariabel eller et alias) i FROM
klausul.
For at rette denne fejl skal du blot angive et korrelationsnavn/alias for din forespørgsel.
Eksempel på fejlen
Her er et eksempel på kode, der forårsager denne fejl.
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.
Fejlen opstod, fordi jeg glemte at inkludere korrelationsnavnet.
Løsningen
Som nævnt, for at løse dette problem, er alt, hvad vi skal gøre, at angive et korrelationsnavn (også kendt som en intervalvariabel 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" } ] } } | +--------------+