Ошибка в SQL Server при подключении к PowerBI Datamart [Unsupported sql function USER_NAME]

Я подключился к Datamart через SSMS. За Datamart находится база данных Azure SQL.

Я пытаюсь узнать свое имя пользователя. Я использовал следующий запрос:

SELECT USER_NAME();

Я получаю эту ошибку:

Неподдерживаемая функция SQL USER_NAME. Строка:1, Позиция:8

Я прочесал интернет, но я еще не нашел ничего работающего.

«Витрина данных» — довольно общий термин, который, к сожалению, также используется для конкретных продуктов. Чтобы было ясно, вы говорите о витрине данных Power BI, верно?

Jeroen Mostert 18.11.2022 19:17

Да, это правильно. Я имею в виду Power BI Datamart.

Jimmy 18.11.2022 19:18

Хотя они «говорят» на TDS и имеют доступную конечную точку SQL, используемый язык не является T-SQL, и, насколько я могу судить, до сих пор нет официальной документации о том, что язык поддерживает и что не поддерживает. Единственное, что я смог найти даже близко к этому, это то, что, по-видимому, есть функция metadata.fn_relationships, как задокументировано здесь, но это случайное упоминание — единственное. Язык должен иметь синтаксис и семантику помимо SQL, они просто еще не написали его. :П

Jeroen Mostert 18.11.2022 19:19

Это полезно знать. Я попытаюсь узнать, смогу ли я связаться с кем-нибудь из команды разработчиков PowerBI по этому поводу. Правильно ли говорить, что SQL работает нормально, но функции T-SQL, скорее всего, не будут работать? Пожалуйста, не стесняйтесь публиковать это как решение, чтобы я мог пометить его как ответ.

Jimmy 18.11.2022 19:36

Что они, по-видимому, сделали, так это написали свой собственный небольшой движок, который анализирует SQL и, вероятно, выборочно пересылает или транслирует операторы базовому экземпляру Azure (или экземплярам?), выполняющему реальную работу. Немного сложно сказать только по документации, насколько он сложен (то есть, что он делает и не отправляет базовому движку), но, по-видимому, как вы обнаружили, запрос не имеет ничего, кроме встроенного вызов функции не будет переведен/перенаправлен. Несмотря на то, что это предварительная версия, я думаю, что документы по языку должны появиться раньше, чем позже, но я не в команде.

Jeroen Mostert 18.11.2022 19:40

Пожалуйста, смотрите мой обновленный комментарий ниже к ответу. В итоге заработало. Хотя я согласен с тем, что необходима дополнительная информация о Power BI Datamart. Кажется, мне тоже запрещено создавать таблицы. Я тоже не могу предоставить себе эту привилегию. Также я заметил, что таблицы - это просто «представления».

Jimmy 18.11.2022 20:23
[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP
Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Улучшение генерации файлов Angular
Улучшение генерации файлов Angular
Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.
1
6
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В MS SQL SERVER вы должны использовать

SELECT CURRENT_USER;  

Оп написал в комментарии, что ему нужно закрыть открытое окно запроса и открыть новое, после этого оно работает, как шарм.

Или получить имя пользователя Windows вошедшего в систему пользователя

SELECT  SUSER_NAME() LoggedInUser

Я попробовал это, и я получил ту же ошибку. Incorrect syntax near (. Line:1, Position:12. Просто примечание, я использую SQL Server Management Studio.

Jimmy 18.11.2022 19:17

О, извините, я неправильно прочитал базу данных, которую вы используете, попробуйте измененный ответ

nbk 18.11.2022 19:40

Я получил эту ошибку при вводе: Unsupported sql function SUSER_NAME. Line:1, Position:9

Jimmy 18.11.2022 20:09

Оба показывают результат в sql server 2019, все команды выполняются на конечных точках Azure Ad.

nbk 18.11.2022 20:15

Вопрос на самом деле не о SQL Server. Витрины данных Power BI предлагают конечную точку, совместимую с SQL Server (по крайней мере, совместимую с протоколом), но на самом деле не реализуют T-SQL напрямую, так же как есть множество вещей, которые «говорят» на проводных протоколах MySQL или Postgres, но на самом деле не являются MySQL или Постгрес.

Jeroen Mostert 18.11.2022 20:17

Сработало, сработало SELECT CURRENT_USER; сработало. Я закрыл окно запроса и снова открыл его в SSMS. Запустил запрос, и он вернул пользователя. Я не уверен, что там происходит.

Jimmy 18.11.2022 20:20

Так что этот ответ на самом деле неверен.

Nick.McDermaid 19.11.2022 00:28

@ Nick.McDermaid нет, первый ответ уже был правильным. после закрытия окна запроса все работает нормально

nbk 19.11.2022 23:27

Другие вопросы по теме