-
В инете нашёл такой запросselect user, current_role from rdb$database
Он честно исполняется. У меня вопрос - откуда берутся значения user и current_role, если в таблице rdb$database таких полей нет.? -
icp © (17.07.18 17:12) [1]а с чего ты решил, что в списке селекта все должно быть полями?
select sysdate from dual
ни самой таблицы дуал, ни тем более поля сисдата в природе нет, а запрос выполняется и возвращает результат -
icp © (17.07.18 17:23) [2]https://firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref-appx04-database.html
RDB$DATABASE stores basic information about the database. It contains only one record.
таким образом здесь "from rdb$database" написано всего лишь по двум причинам:
1. Это не mssql и в селекте обязан быть фром (а если есть фром, то и объект для фрома должен быть)
2. Выбрана таблица rdb$database потому что в ней всегда и везде ровно одна запись, и значит значения функций user и current_role будут возвращены как поля всего одной строки
можешь с таким же успехом сделать
select 'мама мыла раму' as dummy,
2*2 as four,
user,
current_role
from любая_другая таблица
и получить много одинаковых значений юзернеймов и ролей -
Styx © (18.07.18 09:38) [3]
> можешь с таким же успехом сделать
Ну это врядли... Неужели в пользовательской таблице нельзя поле назвать User? -
> Неужели в пользовательской таблице нельзя поле назвать User?
можно, но тогда нужно в запросе выделять что обращение именно к полю (в mssql например кавычками []), а переменная это переменная.