Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да коригирате „Име на корелация трябва да бъде посочено за груповия набор от редове в клаузата from.“ в SQL Server

Ако срещнете грешка Msg 491, ниво 16 „Трябва да се посочи име на корелация за груповия набор от редове в клаузата from“ в SQL Server, това вероятно е защото се опитвате да прочетете файл, без да използвате име на корелация.

Когато използвате OPENROWSET() функция с BULK опция, трябва да предоставите име на корелация (известно също като променлива на диапазон или псевдоним) в FROM клауза.

За да коригирате тази грешка, просто предоставете корелационно име/псевдоним за вашата заявка.

Пример за грешката

Ето пример за код, който причинява тази грешка.

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

Резултат:

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

Грешката възникна, защото забравих да включа името на корелацията.

Решението

Както споменахме, за да решим този проблем, всичко, което трябва да направим, е да предоставим име на корелация (известно също като променлива на диапазон или псевдоним).

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

Резултат:

+--------------+
| 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 Management Studio 2012

  2. MONTH() Примери в SQL Server (T-SQL)

  3. T-SQL Как да създавам динамично таблици в съхранени процедури?

  4. Как NTILE() работи в SQL Server

  5. Топ 10 често задавани въпроси относно мониторинга на производителността на SQL Server