通常我会将数据类型放入临时表中并检查表列类型,例如
select 1.0 N into tbl
sp_help tbl
N 列显示表达式 1.0
的数据类型。 (这只是一个简单的例子)
有一个 SQL 函数可以直接检查表达式的数据类型,但我现在想不起这个名字了。
这个函数的名称是什么?
最佳答案
DECLARE @what sql_variant;
DECLARE @foo decimal(19,3) = 1, @bar decimal(11,7) = 2;
SELECT @what = @foo / @bar;
SELECT
SQL_VARIANT_PROPERTY(@what, 'BaseType'),
SQL_VARIANT_PROPERTY(@what, 'Precision'),
SQL_VARIANT_PROPERTY(@what, 'Scale'),
SQL_VARIANT_PROPERTY(@what, 'MaxLength');
SELECT @what = @foo + @bar;
SELECT
SQL_VARIANT_PROPERTY(@what, 'BaseType'),
SQL_VARIANT_PROPERTY(@what, 'Precision'),
SQL_VARIANT_PROPERTY(@what, 'Scale'),
SQL_VARIANT_PROPERTY(@what, 'MaxLength');
SELECT @what = @foo * @bar;
SELECT
SQL_VARIANT_PROPERTY(@what, 'BaseType'),
SQL_VARIANT_PROPERTY(@what, 'Precision'),
SQL_VARIANT_PROPERTY(@what, 'Scale'),
SQL_VARIANT_PROPERTY(@what, 'MaxLength');
或者临时表/SELECT..INTO..作为您已经完成的操作的扩展
关于sql-server - SQL Server 检查表达式的结果数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008217/