You can kludge this using dynamic SQL, but that opens up many HUGE cans of worms (such as SQL Injection). What are you trying to accomplish (from a business perspective)? There are almost always better ways to get the job done.
Not saying it is correct (Pat is right about reexamining your needs) but if I were to do this I would do something like:
CREATE TABLE dbo.MyTable
DECLARE @Column_Name AS VarChar(20),
@SQL AS VarChar(200),
@Loopy AS Int
WHILE COALESCE(@Loopy, 0) < 2 BEGIN
IF @Loopy IS NULL BEGIN
SET @Column_Name = 'MyCol'
SET @Column_Name = 'MyFakeCol'
IF EXISTS(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = @Column_Name AND TABLE_NAME = 'MyTable') BEGIN
SET @SQL = 'SELECT @Column_Name' + CHAR(13) +
SET @SQL = REPLACE(@SQL, '@Column_Name', @Column_Name)
SET @SQL = 'POTENTIAL INJECTION'
PRINT @SQL + CHAR(13) + CHAR(13)
SET @Loopy = COALESCE(@Loopy, 0) + 1
DROP TABLE dbo.MyTable
BTW - why does my formatting from QA not follow through into my posts properly? VB formatting sticks just fine.