2010-07-14 39 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

您可以隨時將常量存儲在表中。 – 2010-07-14 03:14:06

+1

我仍然必須將鍋爐板代碼剪切/粘貼到所有SP中,或者加入到那個表現糟糕的表現中。 – MrTelly 2010-07-27 23:26:46

回答

2

關閉我的頭頂,你不能包括這樣的常量。

你說的有多少個常量?我想你可以爲每個你想要的常量創建一個函數,而不是@CostsCalculated,但我不確定它是多麼的現實。

或者,將值存儲在指定的表中。

+0

+1:沒有任何功能支持SQL Server中的常量 - 必須通過函數或表。像這樣的東西就是爲什麼Oracle軟件包如此卓越以及爲什麼沒有其他數據庫提供類似的功能。 – 2010-07-14 03:26:37