TSQL中的常量和包含文件

TSQL中的常量和包含文件,tsql,stored-procedures,include,Tsql,Stored Procedures,Include,是否可以在TSQL存储过程中包含一组“常量”值?在这种情况下,我使用一个整型字段来存储位值,并且我有一组小的“常量”值,用于插入/选择该字段 DECLARE @CostsCalculated int = 32 DECLARE @AggregatedCalculated int = 64 --Set CostCalculated bit update MyTable set DataStatus = ISNULL(DataStatus, 0) | @CostsCalculated where I

是否可以在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的顶部重复相同的声明集,但我更愿意包含代码,这意味着我可以在添加新的位值时在一个位置进行更改。

在我的脑海中,不能包含这样的常量

你说的常数是多少?我想您可以为每个需要的常量创建一个函数,而不是声明的常量,并调用该函数,而不是调用
@costscaleculated
,但我不确定这有多现实


或者,将值存储在指定的表中。

您始终可以将常量存储在表中。我仍然需要将锅炉板代码剪切/粘贴到我的所有SP中,或者加入到该表中,这将对性能造成严重影响。+1:SQL Server中没有任何支持常量的功能-必须通过函数或表。这就是为什么Oracle软件包如此出色,奇怪的是为什么没有其他数据库提供类似的功能。