在T-SQL中,是否有可能在运行时确定本地变量的类型?
例如,假设我想要执行以下操作:
IF ( @value IS INTEGER )
或者
IF ( TYPEOF(@value) = <whatever> )
有没有人知道如何实现这个?
编辑:这不是为了特定的任务,而是更多的一个通用知识问题。我很感激那些指出类型应该在同一批次声明中已知的答案,但我想知道是否可以在运行时确定类型。
在T-SQL中,是否有可能在运行时确定本地变量的类型?
例如,假设我想要执行以下操作:
IF ( @value IS INTEGER )
或者
IF ( TYPEOF(@value) = <whatever> )
有没有人知道如何实现这个?
编辑:这不是为了特定的任务,而是更多的一个通用知识问题。我很感激那些指出类型应该在同一批次声明中已知的答案,但我想知道是否可以在运行时确定类型。
运行这个
declare @d int
select @d = 500
if cast(sql_variant_property(@d,'BaseType') as varchar(20)) = 'int'
print 'yes'
else
print 'no'
使用 SQL 2019,以下代码仍在工作
DECLARE @MyVar int;SET @MyVar = 99;
DECLARE @MyVarDataType varchar(50);
SET @MyVarDataType = cast(SQL_VARIANT_PROPERTY(@MyVar,'BaseType') AS varchar);
PRINT @MyVarDataType
我不这么认为 - 但它是一个局部变量,所以你在同一过程中声明它,因此你会知道类型 - 或者我错过了什么吗?