P가 Products 테이블과 같은 매우 긴 저장 프로 시저에서 다음 코드를 사용합니다.SQL Server : 접두사가있는 테이블에서 모든 것을 선택하려면 어떻게합니까?
SELECT
P.*,
etc1,
etc2
그러면 "ProductID"가 표시됩니다.
다음과 같은 접두어로 선택하고 싶습니다.
SELECT
P.* AS P_*,
etc1,
etc2
그러면 "P_ProductID"가 표시됩니다.
가능합니까?
P가 Products 테이블과 같은 매우 긴 저장 프로 시저에서 다음 코드를 사용합니다.SQL Server : 접두사가있는 테이블에서 모든 것을 선택하려면 어떻게합니까?
SELECT
P.*,
etc1,
etc2
그러면 "ProductID"가 표시됩니다.
다음과 같은 접두어로 선택하고 싶습니다.
SELECT
P.* AS P_*,
etc1,
etc2
그러면 "P_ProductID"가 표시됩니다.
가능합니까?
동적 SQL을 사용하는 경우가 아니면 아닙니다. 그런 일을 요구하는 것은 매우 드문 경우입니다.
작업을 예를
create table Products (ProductID int, Price money, Description varchar(10));
insert Products select 1, 12.3, 'apples'
insert Products select 2, 2.4, 'bananas'
create table OrderDetails (OrderID int, ProductID int, Qty int)
insert into OrderDetails select 11,1, 2
insert into OrderDetails select 11,2, 4
declare @sql nvarchar(max)
select @sql = coalesce(@sql+',','') +
'P.' + QuoteName(Column_name) + ' as ' + QuoteName('P_' + Column_name)
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'Products'
order by ORDINAL_POSITION
set @sql = '
select ' + @sql + ', O.OrderID, O.Qty
from Products P
inner join OrderDetails O on P.ProductID = O.ProductID
'
--print @sql :: uncomment if you need to see it
exec (@sql)
출력 :
하나 개의 컬럼에 적용 'AS'내가 믿는P_ProductID P_Price P_Description OrderID Qty
----------- --------------------- ------------- ----------- -----------
1 12.30 apples 11 2
2 2.40 bananas 11 4
+1,하지만 ... 게으름 피우는 것보다 P_ *를 사용하고자하는 다른 이유는 없습니다. 그리고 당신은 이것을 사용하도록 그들을 유혹한다고 생각하니? :) –
@ 안드리 당신은 7 점을 세며 세는 질문을 봅니다. 나는 왜 밧줄을 원 하냐고 묻지 않는다. 당신이 물어, 내가 줄 :) – RichardTheKiwi
. 코드의 열 머리글 앞에 'P_'를 추가 할 수 있습니다.
모든 열을 개별적으로 나열 할 수 있습니다.
와일드 카드로 열 별칭을 사용할 수 없습니다.
p. *가 매우 긴 목록이고 나머지는 몇 개의 열만있는 경우 '나머지'의 이름을 바꾸고 p. *를 그대로 두는 것이 좋습니다.
언급되지 않은 또 다른 옵션은 올바른 모양의보기를 만들고 그 중에서 선택하는 것입니다. –