Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách khắc phục “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

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" }
        ]
    }
}              |
+--------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 Nguyên tắc truy vấn và cú pháp SQL để giám sát cơ sở dữ liệu tốt hơn

  2. Lỗi SQL Server 7222:“Chỉ nhà cung cấp SQL Server mới được phép trên trường hợp này”

  3. Làm cách nào để thay đổi SQL Server 2005 thành phân biệt chữ hoa chữ thường?

  4. Chuyển đổi tệp SQL2008 RDL sang SQL2005

  5. Tìm hiểu lý do tại sao không gửi được email trong SQL Server (T-SQL)