DECLARE @COLNUM smallint DECLARE @Sql nvarchar(1000) DECLARE @TESTFIELD varchar(100) DECLARE @RESULT varchar(100) SET @COLNUM = 3 USE Northwind set @TESTFIELD = COL_NAME(OBJECT_ID('dbo.Employees'),@COLNUM ) SET @Sql = N'SELECT TOP 1 @result=' + @TESTFIELD + ' FROM Northwind.dbo.Employees' EXEC sp_executesql @Sql, N'@result nvarchar(100) OUTPUT', @result OUTPUT PRINT @resultSee How to return a value from dynamicaly executed T-SQL code FAQ #8130 for more details.
>CREATE PROCEDURE AAA > @COLNUM smallint >AS > >DECLARE @TESTFIELD varchar(100) >DECLARE @RESULT varchar(100) > >set @TESTFIELD = COL_NAME(OBJECT_ID('Northwind.dbo.Employees'),@COLNUM ) > >DECLARE Employee_Cursor CURSOR FOR >SELECT @TESTFIELD FROM Northwind.dbo.Employees > >OPEN Employee_Cursor > >FETCH NEXT FROM Employee_Cursor into @RESULT > >PRINT @RESULT > >CLOSE Employee_Cursor >DEALLOCATE Employee_Cursor >GO