SQL SERVER 存储过程示例
USE TEST_DEV; SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:
-- Create date:
-- Description:存储过程示例
-- =============================================
CREATE PROCEDURE PROC_DEMON
@IN_PLANT VARCHAR(20), ------- 输入参数 --------
@IN_ASSEMBLY VARCHAR(20),
@IN_SUPPLIER VARCHAR(20),
@IN_DOCK VARCHAR(20),
@IN_PARTS VARCHAR(20),
@IN_PART_NUM INT,
@OUTPUT INT OUTPUT ------- 输出参数 --------
AS
BEGIN ------- 创建变量 --------
DECLARE @PLANT VARCHAR(20);
DECLARE @ASSEMBLY_LINE VARCHAR(20);
DECLARE @SUPPLIER_NUM VARCHAR(20);
DECLARE @DOCK VARCHAR(20);
DECLARE @BOX_PARTS VARCHAR(20);
DECLARE @PART_NUM INT; -------- 创建临时表 --------
CREATE TABLE #TEMP([PLANT] VARCHAR(20),[ASSEMBLY_LINE] VARCHAR(20),[SUPPLIER_NUM] VARCHAR(20),[DOCK] VARCHAR(20),[BOX_PARTS] VARCHAR(20),[PART_NUM] INT)
-------- 插入数据 --------
INSERT #TEMP(PLANT,ASSEMBLY_LINE,SUPPLIER_NUM,DOCK,BOX_PARTS,PART_NUM)
VALUES (@IN_PLANT,@IN_ASSEMBLY,@IN_SUPPLIER,@DOCK,@IN_PARTS,@IN_PART_NUM); -------- 创建游标 --------
DECLARE cur1 CURSOR FOR SELECT [PLANT],[ASSEMBLY_LINE],[SUPPLIER_NUM],[DOCK],[BOX_PARTS],[PART_NUM]
FROM #TEMP
WHERE PLANT IS NOT NULL
GROUP BY [PLANT],[ASSEMBLY_LINE],[SUPPLIER_NUM],[DOCK],[BOX_PARTS],[PART_NUM]; -------- 打开游标并填充数据 --------
OPEN cur1
FETCH NEXT FROM cur1 INTO @PLANT,@ASSEMBLY_LINE,@SUPPLIER_NUM,@DOCK,@BOX_PARTS,@PART_NUM
PRINT @@FETCH_STATUS;
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE @PARTNUM INT;
SELECT @PARTNUM = ISNULL(PART_NUM,0) FROM #TEMP WHERE BOX_PARTS IS NOT NULL;
IF @PARTNUM > 0 BEGIN
SET @OUTPUT = 1;
END
ELSE BEGIN
SET @OUTPUT = 0;
END
-------- 填充下一条数据 --------
FETCH NEXT FROM cur1 INTO @PLANT,@ASSEMBLY_LINE,@SUPPLIER_NUM,@DOCK,@BOX_PARTS,@PART_NUM
-------- 查看游标状态 --------
PRINT @@FETCH_STATUS;
END
CLOSE cur1 SELECT * FROM #TEMP;
-------- 删除临时表 --------
--DROP TABLE #TEMP;
-------- 返回值 --------
RETURN 1;
END
GO SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ON
GO --DROP PROC dbo.PROC_DEMON -------- 带输入输出参数 ---------
--DECLARE @RESULT AS INT;
--EXEC dbo.PROCDEMON
-- @IN_PLANT = 'I033',
-- @IN_ASSEMBLY = 'AF01',
-- @IN_SUPPLIER = 'LOC',
-- @IN_DOCK = 'LOC05',
-- @IN_PARTS = 'ZONE1',
-- @IN_PART_NUM = 0,
-- @OUTPUT = @RESULT OUTPUT
--SELECT @RESULT AS RESULT; -------- 带输入输出带返回值 ---------
DECLARE @RESULT AS INT,
@STATUS AS INT = 0;
EXEC @STATUS = dbo.PROC_DEMON
@IN_PLANT = 'I033',
@IN_ASSEMBLY = 'AF01',
@IN_SUPPLIER = 'LOC',
@IN_DOCK = 'LOC05',
@IN_PARTS = 'ZONE1',
@IN_PART_NUM = 11,
@OUTPUT = @RESULT OUTPUT
SELECT @RESULT AS RESULT,@STATUS AS STATUS;
SQL SERVER 存储过程示例的更多相关文章
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- SQL server存储过程语法及实例(转)
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程cr ...
- SQL Server 存储过程(转载)
SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这 ...
- (摘录)SQL Server 存储过程
文章摘录:http://www.cnblogs.com/hoojo/archive/2011/07/19/2110862.html SQL Server 存储过程 Transact-SQL中的存储过程 ...
- SQL Server存储过程Return、output参数及使用技巧
SQL Server目前正日益成为WindowNT操作系统上面最为重要的一种数据库管理系统,随着 SQL Server2000的推出,微软的这种数据库服务系统真正地实现了在WindowsNT/2000 ...
- 14、SQL Server 存储过程
SQL Server 存储过程 存储过程类似函数,可以重复使用.相对于函数,存储过程拥有更强大的功能和更高的灵活性. 存储过程中可以包含逻辑控制语句和数据操作语句,可以接受参数,输出参数,返回单个值或 ...
- Sql Server 存储过程中查询数据无法使用 Union(All)
原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正 ...
- Yii2.0调用sql server存储过程并获取返回值
1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...
- C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try
C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...
随机推荐
- 【计算几何】bzoj2338 [HNOI2011]数矩形
对于两条线段,若其中点重合,且长度相等,那么它们一定是某个矩形的对角线. N*N地处理出所有线段,排序,对每一部分中点重合.长度相等的线段进行暴力枚举,更新答案. 用 long double 注意EP ...
- iOS开发——给ImageView添加点击事件
给ImageView添加点击事件 1: cell.pictureView.userInteractionEnabled = YES; 2: UITapGestureRecognizer ...
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
ThinkPHP框架的控制器模块是如何实现 前控制器.后控制器,及如何执行带参数的方法? PHP系统自带的 ReflectionClass.ReflectionMethod 类,可以反射用户自定义类的 ...
- HTML5无刷新实现跳转页面技术
window.onpopstate window.onpopstate是popstate事件在window对象上的事件句柄. 每当处于激活状态的历史记录条目发生变化时,popstate事件就会在对应w ...
- ZK的数据结构特点
ZK的数据结构特点 ZooKeeper这种数据结构有如下这些特点: 1. 每个子目录项如NameService都被称作znode,这个znode是被它所在的路径唯一标识,如Server1这个znode ...
- Android中的线程池 ThreadPoolExecutor
线程池的优点: 重用线程池中的线程,避免因为线程的创建和销毁带来的性能消耗 能有效的控制线程的最大并发数,避免大量的线程之间因抢占系统资源而导致的阻塞现象 能够对线程进行简单的管理,并提供定时执行以及 ...
- [Android Traffic] Android网络开启、关闭整理
转载: http://blog.csdn.net/tu_bingbing/article/details/8469871 近段时间由于要对手机网络状况进行判断.开启和关闭,从网上找了些资料,现整理如下 ...
- git fetch 的简单用法:更新远程代码到本地仓库及冲突处理
Git中从远程的分支获取最新的版本到本地方式如下,如何更新下载到代码到本地,请参阅ice的博客基于Github参与eoe的开源项目指南方式一1. 查看远程仓库 1 2 3 4 5 6 $ git re ...
- 轻松学习JavaScript十二:JavaScript基于面向对象之创建对象(二)
四原型方式 我们创建的每一个函数都有一个通过prototype(原型)属性.这个属性是一个对象,它的用途是包括能够由特定类型 的全部实例共享的属性和方法. 逻辑上能够这么理解:prototypt通过条 ...
- HDU 2191悼念512汶川大地震遇难同胞——珍惜如今,感恩生活(多重背包)
HDU 2191悼念512汶川大地震遇难同胞--珍惜如今.感恩生活(多重背包) http://acm.hdu.edu.cn/showproblem.php?pid=2191 题意: 如果你有资金n元, ...