Wenn in SQL Server die Fehlermeldung 491, Ebene 16 „Ein Korrelationsname muss für das Bulk-Rowset in der from-Klausel angegeben werden“ auftritt, liegt dies wahrscheinlich daran, dass Sie versuchen, eine Datei ohne Verwendung eines Korrelationsnamens zu lesen.
Wenn Sie OPENROWSET()
verwenden Funktion mit dem BULK
müssen Sie im FROM
einen Korrelationsnamen (auch bekannt als Bereichsvariable oder Alias) angeben Klausel.
Um diesen Fehler zu beheben, geben Sie einfach einen Korrelationsnamen/Alias für Ihre Abfrage an.
Beispiel für den Fehler
Hier ist ein Codebeispiel, das diesen Fehler verursacht.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
Ergebnis:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
Der Fehler ist aufgetreten, weil ich vergessen habe, den Korrelationsnamen anzugeben.
Die Lösung
Wie bereits erwähnt, müssen wir zur Behebung dieses Problems lediglich einen Korrelationsnamen (auch bekannt als Bereichsvariable oder Alias) angeben.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
Ergebnis:
+--------------+ | 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" } ] } } | +--------------+