SQL Server 2005:确定变量的数据类型

时间:2009-01-15 18:43:09

标签: sql sql-server-2005 tsql

是否可以在TSQL中确定运行时局部变量的类型?

例如,假设我想沿着这些方向做点什么:

IF ( @value IS INTEGER )

或者

IF ( TYPEOF(@value) = <whatever> )

有谁知道有任何方法可以实现这一目标?

编辑:这不是针对特定任务,这更多是一般知识问题。我很欣赏答案,表明该类型应该是已知的,因为它是在同一批次中声明的,我很好奇是否可以在运行时确定类型。

2 个答案:

答案 0 :(得分:27)

运行此

declare @d int

select @d = 500

if cast(sql_variant_property(@d,'BaseType') as varchar(20))  = 'int'
print 'yes'
else
print 'no'

答案 1 :(得分:-1)

我不这么认为 - 但它是一个局部变量,所以在相同的程序中声明它,所以你会知道这个类型 - 或者我错过了什么?