SQL Server 2005: определение типа данных переменной

Можно ли определить тип локальной переменной во время выполнения в TSQL?

Например, скажем, я хотел сделать что-то в этом направлении:

IF ( @value IS INTEGER )

или

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

Кто-нибудь знает, как это сделать?

EDIT: Это не для конкретной задачи, это скорее общий вопрос знаний. Я действительно ценю ответы, которые указывают, что тип должен быть известен, поскольку он объявлен в той же партии, мне любопытно, можно ли определять тип во время выполнения.

Ответы

Ответ 1

запустите это

declare @d int

select @d = 500

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

Ответ 2

Я так не думаю - НО это локальная переменная, поэтому объявляем ее в той же самой процедуре, чтобы вы знали тип в любом случае - или я что-то не хватает?