Доступ Sybase TSQL к таблице или представлению

#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 пользователя.