碰到一问题 不知道是否有方法查询一个变量的类型
declare @s varchar(max)
可否知道@s变量的类型?补充问题:
因为虽然定义@s 为varchar(max)类型 但实际中有很多函数会把varchar(max)类型转换为varchar
我想要测试这个变量的类型在何时开始转变的 所以才提出此问题
declare @s varchar(max)
可否知道@s变量的类型?补充问题:
因为虽然定义@s 为varchar(max)类型 但实际中有很多函数会把varchar(max)类型转换为varchar
我想要测试这个变量的类型在何时开始转变的 所以才提出此问题
SELECT SQL_VARIANT_PROPERTY (ISNULL(@S,''),'BaseType')
/*
varchar
*/[/code][/code]
不能区分varchar与varchar(max)...
set @s='yinqi'
SELECT SQL_VARIANT_PROPERTY (ISNULL(@S,''),'BaseType'),
SQL_VARIANT_PROPERTY (@s,'MaxLength')
declare @h varchar(max)
select sql_variant_property (isnull(@h,''),'basetype')
error:
Operand type clash: varchar(max) is incompatible with sql_variant
DECLARE @s VARCHAR(20);
select @s = '';
SELECT SQL_VARIANT_PROPERTY(@s, 'BaseType'), SQL_VARIANT_PROPERTY(@s, 'MaxLength')
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
varchar 20(1 行受影响)