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