Как я могу поставить префикс всех имен столбцов в функции T-SQL? - PullRequest
0 голосов
/ 11 августа 2011

У меня есть таблица T с 2 столбцами C1 и C2

Я хочу функцию, которая возвращает T, но после того, как все имена столбцов начинаются с "PREFIX _".

Префикс является динамической строкойпередано в функцию.

Это возможно?

Я хочу что-то вроде

SELECT C1 AS @prefix + 'C1', 
    C2 AS @prefix + 'C2' 
FROM T

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Это будет сделано, даже если вы еще не знаете столбцы.

declare @prefix varchar(20)
declare @sqltext nvarchar(500)
set @prefix = 'prefix_'

declare @columnnames varchar(500)

select @columnnames = coalesce(@columnnames, '')+',' +column_name + ' '+ @prefix+column_name 
from INFORMATION_SCHEMA.COLUMNS a where table_name = 't' and table_schema = 'dbo'

set @sqltext = 'select '+stuff(@columnnames,1,1,char(0))+' from t'

exec(@sqltext)
0 голосов
/ 11 августа 2011

Что касается известного количества столбцов, вы можете создать строку SQL с псевдонимом и exec() it;

declare @prefix varchar(32) = 'prefix_'
declare @sql    nvarchar(1024) 

set @sql = 'select C1 as [' + @prefix + 'C1], C2 as [' + @prefix + 'C2] from T'
exec(@sql)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...