2009-01-15 27 views
14

değişkeninin veri türü belirleme Çalışma zamanında bir yerel değişken türünü belirlemek mümkün mü TSQL? ÖrneğinSQL Server 2005:

, ben bu satırlar boyunca bir şey yapmak istedim ki:

IF (@value IS INTEGER) 

Ya

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

kimse bunu gerçekleştirmek için herhangi bir yol biliyor mu?

DÜZENLEME: Bu belirli bir görev için değil, daha genel bir bilgi sorusu. Aynı parti içinde bildirildiğinden türün bilinmesi gerektiğini belirten yanıtları takdir ediyorum, türün çalışma zamanında belirlenip belirlenemeyeceğini merak ediyorum.

cevap

27

koşmak bazı yerleşik işlevleri için dönüş türlerini öğrenebilirsiniz size yukarıda özetlenen yaklaşım @SQLMenace ile bu

declare @d int 

select @d = 500 

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

Not: SQL Server sürümünde, bir sütun yerine bir değişken üzerinde sql_variant_property() dosyasını çalıştıran bir hata alıyorum. –

-1

Sanmıyorum - AMA yerel bir değişkendir, bu yüzden aynı prosedürde bunu bildiriyorsunuz, bu yüzden zaten türünü biliyorsunuzdur - ya da bir şeyi özlüyor muyum?

+0

. Hızlı bir örnek için lütfen bu [sonrası] 'ya bakın (http://climenco.blogspot.com/2014/04/t-sql-coalesce-returns-int.html). –

İlgili konular