Ответ 1
запустите это
declare @d int
select @d = 500
if cast(sql_variant_property(@d,'BaseType') as varchar(20)) = 'int'
print 'yes'
else
print 'no'
Можно ли определить тип локальной переменной во время выполнения в TSQL?
Например, скажем, я хотел сделать что-то в этом направлении:
IF ( @value IS INTEGER )
или
IF ( TYPEOF(@value) = <whatever> )
Кто-нибудь знает, как это сделать?
EDIT: Это не для конкретной задачи, это скорее общий вопрос знаний. Я действительно ценю ответы, которые указывают, что тип должен быть известен, поскольку он объявлен в той же партии, мне любопытно, можно ли определять тип во время выполнения.
запустите это
declare @d int
select @d = 500
if cast(sql_variant_property(@d,'BaseType') as varchar(20)) = 'int'
print 'yes'
else
print 'no'
Я так не думаю - НО это локальная переменная, поэтому объявляем ее в той же самой процедуре, чтобы вы знали тип в любом случае - или я что-то не хватает?