Als u foutbericht 491, niveau 16 "Er moet een correlatienaam worden opgegeven voor de bulkrijenset in de from-clausule" in SQL Server tegenkomt, komt dit waarschijnlijk omdat u een bestand probeert te lezen zonder een correlatienaam te gebruiken.
Wanneer u de OPENROWSET()
. gebruikt functie met de BULK
optie, moet u een correlatienaam (ook bekend als een bereikvariabele of alias) opgeven in de FROM
clausule.
Om deze fout op te lossen, geeft u eenvoudig een correlatienaam/alias op voor uw zoekopdracht.
Voorbeeld van de fout
Hier is een voorbeeld van code die deze fout veroorzaakt.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
Resultaat:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
De fout is opgetreden omdat ik ben vergeten de correlatienaam op te nemen.
De oplossing
Zoals gezegd, om dit probleem op te lossen, hoeven we alleen een correlatienaam op te geven (ook bekend als een bereikvariabele of alias).
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
Resultaat:
+--------------+ | 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" } ] } } | +--------------+