Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Memperbaiki "Nama korelasi harus ditentukan untuk kumpulan baris massal di klausa dari." di SQL Server

Jika Anda mengalami kesalahan Msg 491, Level 16 "Nama korelasi harus ditentukan untuk kumpulan baris massal di klausa dari" di SQL Server, mungkin karena Anda mencoba membaca file tanpa menggunakan nama korelasi.

Saat Anda menggunakan OPENROWSET() berfungsi dengan BULK opsi, Anda harus memberikan nama korelasi (juga dikenal sebagai variabel rentang atau alias) di FROM klausa.

Untuk memperbaiki kesalahan ini, cukup berikan nama/alias korelasi untuk kueri Anda.

Contoh Kesalahan

Berikut adalah contoh kode yang menyebabkan kesalahan ini.

SELECT BulkColumn FROM OPENROWSET (
    BULK '/var/opt/mssql/bak/pets.json', 
    SINGLE_CLOB
    );

Hasil:

Msg 491, Level 16, State 1, Line 4
A correlation name must be specified for the bulk rowset in the from clause.

Kesalahan terjadi karena saya lupa memasukkan nama korelasi.

Solusinya

Seperti yang disebutkan, untuk memperbaiki masalah ini, yang perlu kita lakukan hanyalah memberikan nama korelasi (juga dikenal sebagai variabel rentang atau alias).

SELECT BulkColumn FROM OPENROWSET (
    BULK '/var/opt/mssql/bak/pets.json', 
    SINGLE_CLOB
    ) AS MyAlias;

Hasil:

+--------------+
| 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. SQL Server Subquery mengembalikan lebih dari 1 nilai. Ini tidak diizinkan ketika subquery mengikuti =, !=, <, <=,>,>=

  2. Jalankan Query Dinamis dengan go in sql

  3. Bagaimana cara mengubah jumlah menit ke format jj:mm di TSQL?

  4. Bagaimana cara menentukan jumlah hari dalam sebulan di SQL Server?

  5. Bagaimana cara memeriksa apakah ada database di SQL Server?