如何声明一个全局变量来存储数字的no.of .decimal值(变量)?

时间:2015-10-21 21:38:13

标签: sql sql-server-2008

我需要一个全局变量来存储数字(变量)的no.of十进制值....下面是场景......

我有一个存储过程,我在开始时声明所有十进制数字,如下所示

Declare @timeID as Decimal(15,**3**),
Declare @BusinessID as Decimal(15,**3**)

我需要一个存储十进制数的变量说

Declare @decimalcount as Integer, @decimalcount=3

我可以在我所做的所有声明中使用它

Declare @timeID as Decimal(15,@decimalcount)

Declare @BusinessID as Decimal(15,@decimalcount)

所以通过在一个地方更改值会改变代码中的所有值.... 这可能吗?

1 个答案:

答案 0 :(得分:0)

查看用户定义的数据类型,通过CREATE TYPE命令实现。我没有使用它们,因此无法给出详细的建议,但一般来说它允许您根据现有的数据类型设置“新”数据类型,然后在后续代码中可以使用该新数据类型。承租人...

CREATE TYPE phkTest from decimal(15,3)
GO


DECLARE @Foo phkTest

SET @Foo = 1
PRINT @Foo

SET @Foo = 1.1
PRINT @Foo

SET @Foo = 1.12
PRINT @Foo

SET @Foo = 1.123
PRINT @Foo

SET @Foo = 1.1234
PRINT @Foo

SET @Foo = 1.12345
PRINT @Foo

SET @Foo = 1.6789
PRINT @Foo

SET @Foo = 1.1235
PRINT @Foo
GO

DROP TYPE phkTest

是的,几乎像宣传的那样有效。您没有获得具有精度的变量,但您确实获得了一致性。 (我敢打赌,精确度可以通过一些努力从系统表中捕获。)