USE  DB名称
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

.

CREATE   PROCEDURE     存储过程名
 @formID   nvarchar(20) ,                        --传入参数
 @Error      int output

AS

DECLARE             @DayID                    NVARCHAR(10)            --当前日期
 DECLARE            @GLFDayID             NVARCHAR(10)            --費用計算日
 DECLARE            @EmpID                   NVARCHAR(50)            --人员工号
 DECLARE            @TFormDayID          NVARCHAR(10)            --  填单日期 
 DECLARE            @LWorkDay              NVARCHAR(10)            --最后工作日

BEGIN

--给人员工号变量赋值

SELECT @EmpID=EmpID  FROM    离职表签核总表      WHERE    FormID=@formID       --(传入单号变量)

--新建一个temp表并插入temp表中離職人員所有請的非曠工假與實數

INSERT INTO   temp表   (VocaEmpID,VocaEmpName,VocaDayID,VocaTotalHours,ColType)

SELECT  VocaEmpID,VocaEmpName,VocaDayID,A.VocaTotalHours,ColType
FROM  请假明细表 A, 离职表签核总表 B
WHERE  A.CurrentStatus='5' AND A.VocaEmpID=B.EmpID AND A.ColType!='C04'  ORDER BY VocaEmpID DESC

--更新臨時表中的人員责任制类型

UPDATE   temp表   SET  IsDuty=A.IsDuty

FROM  人员信息表   A,    temp表  B

WHERE A.EmpID=B.VocaEmpID

--给变量赋值     [dbo].[RSN_FC_CostDay](EmpID)  为函数方法

SELECT @DayID=CONVERT(NVARCHAR(10),GETDATE(),111),@EmpID=EmpID  ,@TFormDayID=CONVERT(NVARCHAR(10),ApDate,111) ,@GLFDayID=[dbo].[RSN_FC_CostDay](EmpID)    FROM    离职表签核总表    WHERE FormID=@formID

SELECT @LWorkDay=MAX(VocaDayID)  FROM     请假明细表   WHERE  VocaEmpID=@EmpID AND ColType='C04'  AND CurrentStatus='5'

INSERT INTO    HCB汇总表

(DayID ,

FormNID ,

EmpID ,

TFormDayID ,

LWorkDay ,

GLFDayID ,

IsTB ,

CUser ,

CDate ,

LUser ,

LDate

VALUES

(@DayID ,

@formID,

@EmpID ,

@TFormDayID ,

@LWorkDay ,

@GLFDayID ,

N'N' ,

N' ' ,

GETDATE() ,

N' ' ,

GETDATE()

SET @Error= @@ERROR

TRUNCATE   TABLE   temp表

END

SQL Server存储过程中变量使用函数调用变量的更多相关文章

  1. SQL Server存储过程中使用表值作为输入参数示例

    这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...

  2. Sql Server 存储过程中查询数据无法使用 Union(All)

    原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...

  3. sql server 存储过程中使用变量表,临时表的分析(续)

    最近,我有一朋友,对我说他的数据库中的很多存储过程,执行都是超时.让我替他看看是什么原因.我一看,原来他的存储过程中用了很多的临时表与变量表.于是我跟他说过犹不及. 在存储过程中使用临时表或变量表,使 ...

  4. 【转】SQL SERVER 存储过程中变量的作用域

    今天遇到一个很有趣的事情,以前没有注意过,所以记下来. 先来看例子. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE ...

  5. sql server存储过程中SELECT 与 SET 对变量赋值的区别

    SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...

  6. 【转】sql server存储过程中SELECT 与 SET 对变量赋值的区别

    转自:http://www.cnblogs.com/micheng11/archive/2008/07/08/1237905.html SQL Server 中对已经定义的变量赋值的方式用两种,分别是 ...

  7. sql server存储过程中SELECT 与 SET 对变量赋值的区别 转自Theo

    SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...

  8. SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法

    本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种 ...

  9. SQL Server存储过程中防止线程重入处理方式

    对于线程重入,在C#中有lock关键字锁住一个SyncObject,而SQL Server也可用一个表来模拟实现. 先创建一个同步表,相当于C#中的SyncObject,并插入一条记录(初始值为1) ...

  10. sql server 存储过程中,调用事务 tran

      Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示 ...

随机推荐

  1. leetcode 11. Container With Most Water 、42. Trapping Rain Water 、238. Product of Array Except Self 、407. Trapping Rain Water II

    11. Container With Most Water https://www.cnblogs.com/grandyang/p/4455109.html 用双指针向中间滑动,较小的高度就作为当前情 ...

  2. Spring cloud微服务安全实战-4-9Zuul网关安全开发(二)

    把在微服务里面写的安全的相关逻辑挪到网关里面来.这样把安全逻辑和业务逻辑解耦开.那么这些问题就都解决了. 先来看下之前的安全的代码,首先在之类做了认证,认证服务器去认证,拿这个token去换用户信息. ...

  3. 算法习题---5.6团体队列(Uva540)

    一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...

  4. 【Java】分布式自增ID算法---雪花算法 (snowflake,Java版)

    一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式.UUID.雪花算法. 方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID.这种呢,优点是可以体现全局的递增 ...

  5. 一行命令学会全基因组关联分析(GWAS)的meta分析

    为什么需要做meta分析 群体分层是GWAS研究中一个比较常见的假阳性来源. 也就是说,如果数据存在群体分层,却不加以控制,那么很容易得到一堆假阳性位点. 当群体出现分层时,常规手段就是将分层的群体独 ...

  6. 原生JavaScript贪吃蛇

    在实例开发过程中还是能认识到很多不足的,并且加强了一些基础. 简单写一下制作过程: 1.创建画布 2.创建蛇和老鼠 坐标不能重叠 3.让蛇移动起来 4.添加死亡方法 5.添加转点坐标和方向 6.添加吃 ...

  7. mysql存储过程demo

    #删除存储过程 -- drop procedure if exists add_test; CREATE PROCEDURE add_test() begin #定义变量 declare client ...

  8. centos/Fedora/RHEL 安全设置

    centos/Fedora/RHEL •     整改方法: •     验证检查:  1.查看/etc/login.defs,访谈询问当前所设置的密码长度及更换周期:  2.查看/etc/pam.d ...

  9. didSelectRowAtIndexPath方法无响应解决办法

    tableview的代理事件didSelectRowAtIndexPath失效,可能有三个原因: 1.没有设置tableview的Delegate  需要设置tableview的代理才可以响应代理事件 ...

  10. Python 访问一个网址之后输入信息进行检索

    window Python 3 Pycharm软件 from selenium import webdriver #导入Selenium的webdriver from selenium.webdriv ...