#tsql #sap-ase
#tsql #sap-ase
Вопрос:
Когда я выберу все данные из таблицы / просмотрю человека из города базы данных, я сделаю это следующим образом:
select * from city..person
Затем ASE заменяет * на все столбцы и .. на .dbo. и запрос будет таким:
select name, age, sex from city.dbo.person
Если у меня есть другой view person, созданный другим пользователем (назовем его boss), и я хочу получить доступ к этому представлению, мне нужно сделать выбор следующим образом:
select * from city.boss.person
Есть ли способ сделать так, чтобы city..person был city.boss.person вместо city.dbo.person?
Ответ №1:
Соглашение об именовании в Sybase для идентификации таблицы / представления является [[database.]owner.]table_or_view_name
, что означает, что квалификаторы database
и owner
являются необязательными.
Если вы их не укажете, database
расширяется до текущей базы данных и owner
расширяется до текущего пользователя.
В вашем примере city..person
расширено до city.dbo.person
, потому что вы работаете под dbo
пользователем. Единственный способ расширить ASE city..person
до city.boss.person
— выполнить запрос от имени boss
пользователя.