sql的存储过程调用
USE [ChangHong_612]
GO
/****** Object: StoredProcedure [dbo].[st_MES_GetCodeRule] Script Date: 09/10/2015 17:44:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[st_MES_GetCodeRule] (
@in_CodeRuleName varchar(50) = '' --规则名称
, @in_BillNO varchar(50) = '' --传入的单据编码
, @in_User varchar(20) = ''
, @OutCode varchar(50) = '' output
, @ShowRs bit = 1
)
/*************
exec [st_MES_GetCodeRule] 'MouldNO',''
select * from Sys_CodeRuleChild
creator: Wuchun
create date: 2012.11.06
Remark: 按编码规则产生相应编码
**************/
as
begin
declare @code varchar(200), @DeptCode varchar(20), @SNO varchar(20)
declare @RuleID int, @CodeRuleNo varchar(50), @InitValue varchar(50), @length int , @Level int
select @RuleID = RuleID from Sys_CodeRule where CodeRuleEName = @in_CodeRuleName and state = 1
select @Code = '', @DeptCode = '', @SNO = ''
declare cur cursor for
select CodeRuleNo, InitValue, length, level
from Sys_CodeRuleChild
where RuleID = @RuleID
order by level
open cur
fetch next from cur into @CodeRuleNo, @InitValue, @length, @Level
while(@@fetch_Status = 0)
begin
if(@CodeRuleNO = 'Date')
select @Code = @Code+convert(varchar(8),getdate(),112)
else if(@CodeRuleNO = 'BillNO')
select @Code = @Code+ rtrim(@in_BillNO)
else if(@CodeRuleNO = 'SN') --流水号
begin
exec st_MES_GetCodeInitValue @SNO output, @RuleID, @Level, @CodeRuleNO, @Length, @InitValue
select @Code = @Code+ rtrim(@SNO)
end
else if(@CodeRuleNO = 'Define')
select @Code = @Code + rtrim(@InitValue)
else if(@CodeRuleNO = 'EmpID')
select @Code = @Code + rtrim(@in_user)
else if(@CodeRuleNO = 'DeptCode')
begin
select @DeptCode = DeptCode from sys_user where UserCode = @in_User
select @Code = @Code + @DeptCode
end
fetch next from cur into @CodeRuleNo, @InitValue, @length, @Level
end
close cur
deallocate cur
--Output
select @OutCode = @Code
if @ShowRs = 1
select Code = @Code
end
----------------------------------------------------------------
USE [ChangHong_612]
GO
/****** Object: StoredProcedure [dbo].[st_MES_GetCodeInitValue] Script Date: 09/10/2015 17:46:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[st_MES_GetCodeInitValue] (
@ret varchar(20) output
, @in_RuleID int
, @in_Level int
, @in_CodeRuleNO varchar(20) = ''
, @in_Length int
, @in_InitValue varchar(20) = ''
)
/*************
creator: Wuchun
create date: 2012.11.06
Remark: 按编码规则流水号值
**************/
as
begin
begin tran
if (not exists(select 1 from Sys_CodeRuleValue
where RuleId = @in_RuleID and level = @in_Level and CodeRuleNo = @in_CodeRuleNO))
begin
if @in_InitValue = ''
select @in_InitValue = '1'
else
begin
if isnumeric(@in_InitValue) = 1
select @in_InitValue = convert(int,@in_InitValue)+1
else
select @in_InitValue = '1'
end
insert into Sys_CodeRuleValue(RuleID,CodeRuleNO, Level,value,updateTime)
select @in_RuleID, @in_CodeRuleNO, @in_Level, @in_InitValue, getdate()
end
else
begin
select @in_InitValue = value
from Sys_CodeRuleValue with(rowlock,xlock)
where RuleId = @in_RuleID and level = @in_Level
and CodeRuleNo = @in_CodeRuleNO
select @in_InitValue = convert(int,@in_InitValue)+1
update Sys_CodeRuleValue with (rowlock) set value = @in_InitValue, updateTime = getdate()
where RuleId = @in_RuleID and level = @in_Level
and CodeRuleNo = @in_CodeRuleNO
end
commit tran
select @ret = replace(str(right(@in_InitValue,@in_Length), @in_Length), space(1), '0')
end
sql的存储过程调用的更多相关文章
- sql server存储过程调用C#编写的DLL文件
新建C#类库,编译. 引用 using Microsoft.SqlServer.Server; 方法 [SqlFunction]public static int GenerateTxt(){ ... ...
- VS中调用SQL SERVER存储过程
存储过程是经过编译的,永久保存在数据中的一组SQL语句,通过创建和使用存储过程能够提高程序的重用性和扩展性,为程序提供模块化的功能,还有利于对程序的维护和管理.以下就详谈一下,VB.NET怎样调 ...
- VB.NET调用SQL Sever存储过程
概要: 本文介绍VB.NET使用创建并调用带有输入参数和输出参数的SQL Sever存储过程 本文代码首先检查要创建的存储过程再数据库中是否存在在.如果不存在,则代码创建一个存储过程,该过程一个参数来 ...
- Yii2.0调用sql server存储过程并获取返回值
1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...
- sql server 查询某个表被哪些存储过程调用
sql server 查询某个表被哪些存储过程调用 select distinct object_name(id) from syscomments where id in (select id fr ...
- Delphi调用SQL分页存储过程实例
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...
- C# 调用存储过程 Sql Server存储过程 存储过程报错,程序中的try
C#程序调用Sql Server存储过程,存储过程中报错情况,返回值... 0.SQL存储过程 USE [Opos] GO /****** Object: StoredProcedure [dbo]. ...
- 调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG(转永喃兄)
调用DATASNAP+FIREDAC的远程方法有时会执行二次SQL或存储过程的BUG 1)查询会重复执行的情形:Result := DATASETPROVIDER.Data会触发它关联的DATASET ...
- toad调用存储过程,存储过程调用sql 类
1.定义一个sql 类Hello DROP JAVA SOURCE NEWXZXT."Hello"; CREATE OR REPLACE AND RESOLVE JAVA SOUR ...
随机推荐
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- Spring学习之声明式事物管理
public List<Student> selectStudent() { Student s = new Student(); s.setName("zhengbin&quo ...
- 自己动手写路由器之ioctl获取网络接口信息
最近打算写一个简单路由器,里面有用到ioctl获取网络接口信息,那就先把这部分单独拿出来说一说吧! ioctl这个函数,可以用来对特殊文件的基础设备参数进行操作,它们可以完成与打开文件描述符相关联的控 ...
- Python easy_install
系统中有高版本的Python, 直接pip3 install ipcalc安装,都是装到高版本的Python 系统默认的Python是2.7.6,现在想装到默认版本中,可以使用easy_install ...
- Grep 命令 用法大全
查找x文件 find / -name "x*" -ls 查找文件中x所在的行数 grep -n "x" -r *find . -name "*.jav ...
- T-SQL 常用语句学习
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 get_selected_list_value(self, locator)
def get_selected_list_value(self, locator): """Returns the value of the selected elem ...
- OpenGL学习——基本概念和坐标变换
基本概念 基本功能:几何图形.变换.着色.光照.贴图 高级功能:曲面图元.光栅操作.景深.shader编程 状态机 先设置状态参数:多边形.顶点列表.填充颜色.纹理.混合模式.坐标系 再调用绘图指 ...
- 第2课 讲解主流三大web服务器之Apache服务器(httpd服务器) - 大型网站高并发架构与自动化运维实战(六)
基本配置 配置固定IP地址 打开默认的网卡配置文件 cd /etc/sysconfig/network-script/ cp ifcfg-eth0 ifcfg-eth1 vim ifcfg-eth0 ...
- 常用的CSS Hack技术集锦
来源:http://www.ido321.com/938.html 一.什么是CSS Hack? 不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Ha ...