2

多くの列を持つテーブルがあり、selectを実行するときに各列に同じプレフィックスを追加したいのですが、長いコードの代わりに次のことを意味します。

SELECT table.id    AS prefix_id
      ,table.value AS prefix_value
      ,table.content AS prefix_content
      , ...

それを行う簡単な方法はありますか?

4

2 に答える 2

2

(例のように)手動で使用しない限り、すべての列にプレフィックスを追加することは不可能ですAS

于 2012-08-05T20:35:08.887 に答える
0

これが役立つかどうかわかりませんが、それを行うスクリプトを作成してください。テーブル名、プレフィックスなどを渡すようにカスタマイズできます

declare 
@tableName varchar(50) = 'school',
@sql varchar(max) = 'SELECT '

Select @sql = @sql+'c.'+c.name+',' from sys.columns c
join sys.tables t on c.object_id = t.object_id
where t.name = @tableName

--MORE PRECISELY
Select @sql = @sql+'c.'+c.name+' as prefix_'+c.name+', ' from sys.columns c
join sys.tables t on c.object_id = t.object_id
where t.name = @tableName

Set @sql = @sql + ' FROM '+@tableName+' c'

print @sql

出力c.。 はプレフィックスです。好みに合わせてコードを変更できます

SELECT c.SchoolID as prefix_SchoolID, 

    c.SchoolName as prefix_SchoolName, 
    c.Address as prefix_Address, 
    c.City as prefix_City, 
    c.State as prefix_State, 
    c.Country as prefix_Country,
    c.PhoneNumber as prefix_PhoneNumber, 
    c.Password as prefix_Password,
    c.CreatedBy as prefix_CreatedBy, 
    c.CreatedOn as prefix_CreatedOn, 
    c.ModifiedBy as prefix_ModifiedBy, 
    c.ModifiedOn as prefix_ModifiedOn, 

FROM school c

の後のコンマに注意してくださいmodifiedOn@sqlそれを変数から削除するか、手動で削除する必要がある場合があります

于 2012-08-05T20:54:29.637 に答える