Nếu bạn gặp lỗi Msg 491, Cấp 16 “Tên tương quan phải được chỉ định cho tập hợp hàng loạt trong mệnh đề from” trong SQL Server, có thể là do bạn đang cố đọc tệp mà không sử dụng tên tương quan.
Khi bạn sử dụng OPENROWSET()
chức năng với BULK
, bạn phải cung cấp tên tương quan (còn được gọi là biến phạm vi hoặc bí danh) trong FROM
mệnh đề.
Để khắc phục lỗi này, chỉ cần cung cấp tên / bí danh tương quan cho truy vấn của bạn.
Ví dụ về lỗi
Dưới đây là một ví dụ về mã gây ra lỗi này.
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
);
Kết quả:
Msg 491, Level 16, State 1, Line 4 A correlation name must be specified for the bulk rowset in the from clause.
Đã xảy ra lỗi do tôi quên bao gồm tên tương quan.
Giải pháp
Như đã đề cập, để khắc phục sự cố này, tất cả những gì chúng ta cần làm là cung cấp một tên tương quan (còn được gọi là biến phạm vi hoặc bí danh).
SELECT BulkColumn FROM OPENROWSET (
BULK '/var/opt/mssql/bak/pets.json',
SINGLE_CLOB
) AS MyAlias;
Kết quả:
+--------------+ | 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" } ] } } | +--------------+