Poner una variable como titulo en una consulta sql server

publicado por: Anonymous

Quiero que me muestre un dato variable en el encabezado.

Cuando hago esto:

declare @dato char(6)
declare @sql varchar(800)
set @dato='201601'
select @sql='select @dato as '+ @dato
exec(@sql)

Me sale este error:

Msg 137, Level 15, State 2, Line 1 Must declare the scalar variable “@dato”.

Y yo quiero que me aparezca así:

introducir la descripción de la imagen aquí

solución

Necesitas agregar las comillas simples para que @dato se entienda como string:

declare @dato char(6)
declare @sql varchar(800)
set @dato = '201601';

select @sql='select ''' + @dato + ''' as ' + QUOTENAME(@dato);
exec(@sql);

Otra forma es que uses sp_executesql, que permite pasar parámetros:

declare @dato char(6)
declare @sql nvarchar(800)
set @dato = '201601'

select @sql = N'select @dato as ' + QUOTENAME(@dato);

EXEC SP_EXECUTESQL @sql, N'@dato char(6)', @dato = @dato;
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *