美文网首页
SQL:存储过程内常用的两种变量(附谈变量表)

SQL:存储过程内常用的两种变量(附谈变量表)

作者: 徐胥 | 来源:发表于2021-04-27 15:15 被阅读0次

    存储过程中,存在两种变量,一种是写在as前,如图1的@i;一种是写在as后,如图1的@date。

    图1 两种变量的位置

    我们常在Job,或者说作业中,定时执行[PROC_DW_TableName]的时候,写上代码“ exec [PROC_DW_TableName]  -12”,-12就是这里的@i会接受到的参数值。@i会用在哪里呢?比如:

    图2 @i的使用

    至于@date,是我们在存储过程中需要使用的参数,其定义一般也在存储过程Begin之后,利用"set @date = "对该变量进行赋值。

    总结一下,@i是执行存储过程时才赋值的参数,而@date是存储过程内部赋值的参数。


    谈一谈变量表。

    有时候我们需要在某种特定条件下,需要使用极少量的维度字段对照转换表,但为此新建一个表又觉得过于麻烦,而且不利于数仓建设维护,此时我们可以利用变量表来建设。

    如上文中的@i和@date,我们在定义的时候都会为变量确认数据类型,如int和date。而变量表@t,我们为其赋的类型就是table。

    图3 变量表举例

    使用变量表的时候,和我们使用常规表以及临时表的时候并没有什么区别。

    若在存储过程中使用,通过声明的declare,我们也应该能确认,应该放在as前还是as后了吧。

    相关文章

      网友评论

          本文标题:SQL:存储过程内常用的两种变量(附谈变量表)

          本文链接:https://www.haomeiwen.com/subject/mmnurltx.html