2014-10-17 27 views
0

我想有以下輸出:如何爲SELECT *語句創建TableNameColumnName別名?

TableAColumn1 TableAColumn2 TableBColumn1 TableBColumn2 
SomeValue  SomeValue  SomeValue  SomeValue 

對於下面的語句:

SELECT * AS ... 
FROM TableA, 
    TableB 
WHERE TableA.Column1 = TableB.Column1 

這是可能在SQL Server 2014?是否可以利用INFORMATION_SCHEMA.COLUMNS來實現我想要實現的目標?

+0

是不是你正在使用加入?如果一個表中的Column1是PK並且在另一個FK中,那麼上面的查詢應該可以工作,除了只需要選擇需要的列而不是*並將其移除爲as。 – SMA 2014-10-17 11:22:05

+0

[踢壞的習慣:使用'select *'/省略列表](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/10/bad-habits-to-kick-using-select -omitting-the-column-list.aspx)Aaron Bertrand可能值得一讀。 – 2014-10-17 13:14:59

回答

1

您可以生成列的列表與此查詢:

SELECT STUFF((SELECT ','+ a.TABLE_NAME + '.' + a.COLUMN_NAME + ' AS ' +a.TABLE_NAME + a.COLUMN_NAME 
       FROM INFORMATION_SCHEMA.COLUMNS a 
       WHERE TABLE_NAME = 'TableName' 
      FOR XML PATH(''), TYPE).value('.','VARCHAR(max)'), 1, 1, '') 
相關問題