как я могу использовать sproc @param в качестве псевдонима столбца?

#sql-server #tsql

#sql-server #tsql

Вопрос:

Как можно использовать параметр sproc в качестве псевдонима столбца? Например:

 SELECT '12345' AS @MySprocParam
  

Я попробовал следующий sql, но он не работает:

 DECLARE @MySprocParam VARCHAR(50) = 'TestAlias'
SELECT 'ASDF' AS @MyProcParam
  

Ответ №1:

Вам нужен динамический sql

 DECLARE @MySprocParam VARCHAR(50) = 'TestAlias'

SET @MyProcParam = QUOTENAME(@MyProcParam)

exec( 'SELECT ''ASDF'' AS ' @MyProcParam)
  

Комментарии:

1. Хотелось бы, чтобы был более простой и менее навязчивый способ сделать это

2. @user6867266 — вы можете использовать Quotename здесь, чтобы избежать вторжения. Но невозможно избежать динамического sql