SQL Server存储过程中变量使用函数调用变量
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存储过程中变量使用函数调用变量的更多相关文章
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- Sql Server 存储过程中查询数据无法使用 Union(All)
原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...
- sql server 存储过程中使用变量表,临时表的分析(续)
最近,我有一朋友,对我说他的数据库中的很多存储过程,执行都是超时.让我替他看看是什么原因.我一看,原来他的存储过程中用了很多的临时表与变量表.于是我跟他说过犹不及. 在存储过程中使用临时表或变量表,使 ...
- 【转】SQL SERVER 存储过程中变量的作用域
今天遇到一个很有趣的事情,以前没有注意过,所以记下来. 先来看例子. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE ...
- sql server存储过程中SELECT 与 SET 对变量赋值的区别
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...
- 【转】sql server存储过程中SELECT 与 SET 对变量赋值的区别
转自:http://www.cnblogs.com/micheng11/archive/2008/07/08/1237905.html SQL Server 中对已经定义的变量赋值的方式用两种,分别是 ...
- sql server存储过程中SELECT 与 SET 对变量赋值的区别 转自Theo
SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...
- SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种 ...
- SQL Server存储过程中防止线程重入处理方式
对于线程重入,在C#中有lock关键字锁住一个SyncObject,而SQL Server也可用一个表来模拟实现. 先创建一个同步表,相当于C#中的SyncObject,并插入一条记录(初始值为1) ...
- sql server 存储过程中,调用事务 tran
Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示 ...
随机推荐
- 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 用双指针向中间滑动,较小的高度就作为当前情 ...
- Spring cloud微服务安全实战-4-9Zuul网关安全开发(二)
把在微服务里面写的安全的相关逻辑挪到网关里面来.这样把安全逻辑和业务逻辑解耦开.那么这些问题就都解决了. 先来看下之前的安全的代码,首先在之类做了认证,认证服务器去认证,拿这个token去换用户信息. ...
- 算法习题---5.6团体队列(Uva540)
一:题目 有t个队伍的人正在排队,每次新来一个人,如果他有队友在排队,那他可以插队,直接排到他的队伍的末尾.如果没有队伍在前面,那么他直接排在长队的末尾 ENQUEUE x 将编号x的队员入队 DEQ ...
- 【Java】分布式自增ID算法---雪花算法 (snowflake,Java版)
一般情况,实现全局唯一ID,有三种方案,分别是通过中间件方式.UUID.雪花算法. 方案一,通过中间件方式,可以是把数据库或者redis缓存作为媒介,从中间件获取ID.这种呢,优点是可以体现全局的递增 ...
- 一行命令学会全基因组关联分析(GWAS)的meta分析
为什么需要做meta分析 群体分层是GWAS研究中一个比较常见的假阳性来源. 也就是说,如果数据存在群体分层,却不加以控制,那么很容易得到一堆假阳性位点. 当群体出现分层时,常规手段就是将分层的群体独 ...
- 原生JavaScript贪吃蛇
在实例开发过程中还是能认识到很多不足的,并且加强了一些基础. 简单写一下制作过程: 1.创建画布 2.创建蛇和老鼠 坐标不能重叠 3.让蛇移动起来 4.添加死亡方法 5.添加转点坐标和方向 6.添加吃 ...
- mysql存储过程demo
#删除存储过程 -- drop procedure if exists add_test; CREATE PROCEDURE add_test() begin #定义变量 declare client ...
- centos/Fedora/RHEL 安全设置
centos/Fedora/RHEL • 整改方法: • 验证检查: 1.查看/etc/login.defs,访谈询问当前所设置的密码长度及更换周期: 2.查看/etc/pam.d ...
- didSelectRowAtIndexPath方法无响应解决办法
tableview的代理事件didSelectRowAtIndexPath失效,可能有三个原因: 1.没有设置tableview的Delegate 需要设置tableview的代理才可以响应代理事件 ...
- Python 访问一个网址之后输入信息进行检索
window Python 3 Pycharm软件 from selenium import webdriver #导入Selenium的webdriver from selenium.webdriv ...