2010-07-14 3 views
5

TSQL 저장 프로 시저에 '상수'값 집합을 포함 할 수 있습니까? 나는 비트 값을 저장하는 정수 필드를 사용하고있는 상황을 가지고 있고 나는 동일한 설정을 반복 할 수TSQL에 상수 및 파일 포함

DECLARE @CostsCalculated int = 32 
DECLARE @AggregatedCalculated int = 64 

--Set CostCalculated bit 
update MyTable set DataStatus = ISNULL(DataStatus, 0) | @CostsCalculated 
where Id = 10 

--How many rows have that bit set 
select count(*) from MyTable where ISNULL(DataStatus, 0) & @CostsCalculated = @CostsCalculated 

내가 그 필드에 대 한/삽입을 선택 사용 '상수'값의 작은 세트가 모든 SP의 최상위에서 선언하지만 차라리 코드를 포함시켜야합니다. 즉, 새 비트 값이 추가 될 때 한 곳에서 변경할 수 있습니다.

+0

항상 상수를 테이블에 저장할 수 있습니다. –

+1

나는 아직도 내 SP에 보일러 플레이트 코드를 자르거나 붙이거나 해로운 테이블에 충돌했을 것이다. – MrTelly

답변

2

내 머리 꼭대기에서 벗어나는 그런 상수를 포함 할 수 없습니다.

얼마나 많은 상수를 사용하고 있습니까? 선언 된 상수 대신 원하는 상수 각각에 대해 함수를 만들 수 있고 @CostsCalculated 대신 함수를 호출 할 수 있다고 가정합니다. 그러나 나는 그것이 얼마나 현실적인 것인지 잘 모르겠습니다.

또는 값을 지정된 테이블에 저장하십시오.

+0

+1 : SQL Server에서 상수를 지원하는 기능이 없습니다. 함수 또는 테이블을 통해 실행해야합니다. 이런 점 때문에 오라클 패키지가 대단하며 다른 데이터베이스가 비슷한 기능을 제공하지 않는 이유가 무엇인지 모릅니다. –