SQL Server 检查结果数据类型的表达式 [英] SQL Server check resultant data type of expression

查看:33
本文介绍了SQL Server 检查结果数据类型的表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通常我会将数据类型放入临时表并检查表列类型,例如

Normally I would put the data type into a temp table and inspect the table column type, e.g.

select 1.0 N into tbl

sp_help tbl

然后第 N 列显示表达式 1.0 的数据类型.(这只是一个简单的例子)

Column N then reveals the data type of the expression 1.0. (This is a only simple example)

有一个 SQL 函数可以直接检查表达式的数据类型,但现在我不知道该名称.

There is a SQL function to inspect the data type of an expression directly, but the name escapes me right now.

这个函数的名字是什么?

What is the name of this function?

推荐答案

SQL_VARIANT_PROPERTY 关闭

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.. 作为您已经完成的工作的扩展

Or temp table/SELECT..INTO.. as an extension of what you've already done

Remus 的回答?

这篇关于SQL Server 检查结果数据类型的表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆