Могу ли я изменить имя столбца с оператора выбора на параметр, переданный из хранимой процедуры?

У меня хранимая процедура принимает параметр @phonename, и я хочу узнать свойство телефона из базы данных. После получения свойства из базы данных я хотел бы изменить заголовок столбца "Property" на имя телефона, которое передается из хранимой процедуры. Например, могу ли я сделать

Select property as @phonename
from property
join phone on property.Phid = phone.Phid
where phoneid = (select phid from phone where name = @phonename)
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
46
1

Ответы 1

Что ж, это возможно, хотя и не рекомендуется ...

Вы можете использовать динамический sql:

DECLARE @command varchar(1000)
DECLARE @phonename varchar(100)
SET @phonename = 'Aaron'
SET @command = 'SELECT myColumn AS ' + @phonename + ' FROM myTable WHERE name = ' + @phonename
EXEC (@command)

См .: https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/

ПРИМЕЧАНИЕ: Если вы планируете использовать что-то подобное в производственной среде, подумайте о возможностях SQL-инъекция. Вы можете быть в большей безопасности, применяя эти изменения имени в коде вашего приложения, а не в SQL.

См .: https://www.w3schools.com/sql/sql_injection.asp

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