Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak naprawić „Nazwa korelacji musi być określona dla zbiorczego zestawu wierszy w klauzuli from”. w SQL Server

Jeśli napotkasz błąd Msg 491, poziom 16 „Nazwa korelacji musi być określona dla zbiorczego zestawu wierszy w klauzuli from” w programie SQL Server, prawdopodobnie jest to spowodowane próbą odczytania pliku bez użycia nazwy korelacji.

Gdy używasz OPENROWSET() funkcja z BULK opcji, musisz podać nazwę korelacji (nazywaną również zmienną zakresu lub aliasem) w polu FROM klauzula.

Aby naprawić ten błąd, po prostu podaj nazwę korelacji/alias dla swojego zapytania.

Przykład błędu

Oto przykład kodu, który powoduje ten błąd.

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

Wynik:

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

Wystąpił błąd, ponieważ zapomniałem podać nazwę korelacji.

Rozwiązanie

Jak wspomniano, aby rozwiązać ten problem, wystarczy podać nazwę korelacji (znaną również jako zmienna zakresu lub alias).

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

Wynik:

+--------------+
| 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. jak pominąć zły wiersz w źródle pliku płaskiego ssis?

  2. Co uczenie maszynowe oznacza dla specjalistów od baz danych

  3. Wybierz kolumnę, jeśli inna kolumna jest pusta

  4. Wybór pierwszego rzędu na grupę

  5. Jak uzyskać plan wykonywania zapytań w programie SQL Server?