[英]SQL Server 2005: Determine datatype of variable
TSQL是否可以在運行時確定局部變量的類型?
例如,假設我想按照以下方式做一些事情:
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
我不這么認為 - 但它是一個局部變量,所以在相同的程序中聲明它,所以你會知道類型 - 或者我錯過了什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.