SQL Server 2005: определить тип данных переменной - PullRequest
14 голосов
/ 15 января 2009

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

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

IF ( @value IS INTEGER )

Или

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

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

РЕДАКТИРОВАТЬ: Это не для конкретной задачи, это больше вопрос общего знания. Я действительно ценю ответы, которые указывают, что тип должен быть известен, поскольку он объявлен в том же пакете, мне интересно, можно ли определить тип во время выполнения.

Ответы [ 2 ]

27 голосов
/ 15 января 2009

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

declare @d int

select @d = 500

if cast(sql_variant_property(@d,'BaseType') as varchar(20))  = 'int'
print 'yes'
else
print 'no'
0 голосов
/ 15 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...