--临时表
IF OBJECT_ID('tempdb..#Entry') is not null
BEGIN
DROP TABLE #Entry
END
-----------------------------------------------------
--创建触发器
ALTER TRIGGER [dbo].[icstockbill_ins]
ON [dbo].[ICStockBill]
AFTER insert
AS
BEGIN
SET NOCOUNT ON;
declare @ftrantype int,@Finterid int
declare @text varchar(255)
declare @fbillerid int
select @ftrantype=ftrantype,@Finterid=finterid from inserted
问
if @ftrantype=1
begin
exec [采购申请单执行信息更新] @Finterid
end
end
--------------------------------------------------------------
--创建存储过程
ALTER PROC lj_bom_wanjue @fitemid int ,@flevel int
AS
begin
DECLARE CURSOR FOR
SELECT FITEMID,FQTY INTO #tmp FROM dbo.BZX_BOMEntry WHERE FID =
(SELECT MAX(fid) FROM dbo.BZX_BOM WHERE FITEMID = @fitemid)
SELECT *FROM #tmp
DROP TABLE #tmp
END
EXEC lj_bom_wanjue 78940, 1
----------------------------------------------------
--游标
CREATE table #t(fitemid INT)
DECLARE @fitemid INT
DECLARE lj_test CURSOR FOR
SELECT TOP 50 FItemID FROM dbo.t_ICItem
OPEN lj_test
FETCH NEXT FROM lj_test INTO @fitemid
while (@@fetch_status=0)
BEGIN
INSERT INTO #t(fitemid) VALUES (@fitemid)
--PRINT @fitemid
FETCH NEXT FROM lj_test INTO @fitemid
END
CLOSE lj_test
DEALLOCATE lj_test
SELECT *FROM #t
DROP TABLE #t
------------------------------------------------------------
--BOM嵌套
declare @lev int,@liaohao varchar(30)
select @MID='2',@levs=1
declare @t table(物料ID号 varchar(30),序号 int,物料父ID号 varchar(30),levs int)
insert @t select 物料ID号 ,序号,物料父ID号,@levs from BOM where 物料ID号=@lMID
while @@rowcount<>0
begin
set @levs=@levs+1
insert @t select 物料ID号,序号,物料父ID号,@levs from BOM
where 物料父ID号 in(select 物料ID号 from @t where levs=@levs-1)
end
select * from @t order by levs
---------------------------------------------------------------
--临时表
insert into #bzxbom(fmbitemid,fitemid,fqty,fyt,fth,fisty,fgx,fnote,flev,fismm,fpz ) select @fcpitmeid,@fitemid,@fqty,@fyt,@fth,@fisty,@fyt,@FNOTE,cast(@fmb as varchar(255)),@fismm,@fpz
if exists(select 1 from BZX_BOM where FITEMID = @fitemid )
-------------------------------------------------------------
--存储过程调用存储过程
exec GetICMaxNum 'icstockbill' ,@fqoutinterid output ,1,@fbiller
exec LJ_GetBillNo 29,@fqoutbillno output
select @fqoutinterid as finterid,IDENTITY(int,1,1) as fentryid,'0' as fbrno,a.FItemID,a.FBatchNo,a.FQty,a.FStockID,b.FUnitID,a.FQty as Fauxqty,'PLM调拨库存' as fnote,a.FStockPlaceID,14036 as FPlanMode
into #lj_qout
from ICInventory a inner join t_ICItem b on a.FItemID =b.FItemID
where b.FNumber = @foldnumber and b.FDeleted =0 and a.FQty >0
INSERT INTO ICStockBillEntry (FInterID,FEntryID,FBrNo,FItemID,FBatchNo,FQty,FDCStockID,FUnitID,Fauxqty,Fnote,FDCSPID,FPlanMode)
SELECT * from #lj_qout
drop table #lj_qout
INSERT INTO ICStockBill(FInterID,FBillNo,FBrNo,FTranType,FCancellation,FStatus,FUpStockWhenSave,FROB,Fdate,FDeptID,Fuse,FCheckDate,FFManagerID,FSManagerID,FBillerID,FHeadSelfB0941 )
SELECT @fqoutinterid,@fqoutbillno,'0',29,0,0,0,1,convert(varchar(10),GETDATE(),120),65522,'',Null,10147,10147,16740,@fplmwldh
EXEC p_UpdateBillRelateData 29,@fqoutinterid,'ICStockBill','ICStockBillEntry'
----------------------------------------------------------
--存储过程返回值
ALTER proc [dbo].[LJ_GetBillNo]
@ClassType VARCHAR(50),
@RBillNo VARCHAR(50) OUTPUT
AS
BEGIN
DECLARE @BillNo varchar(50)
DECLARE @FullBillNo varchar(50)
DECLARE @BillID int
DECLARE @TmpID INT
DECLARE @BillIDLen int
DECLARE @NOBillStr varchar(5000)
DECLARE @BillStr varchar(5000)
DECLARE @SCRBillNO varchar(500)
SET @FullBillNo = ''
set @BillNo=''
--取单据编号1
SELECT @BillNo = a.fprojectval
FROM t_BillCodeRule a
LEFT OUTER JOIN t_option e ON a.fprojectid = e.fprojectid AND a.fformatindex = e.fid
LEFT OUTER JOIN t_checkproject b ON a.fbilltype = b.fbilltypeid AND a.fprojectval = b.ffield
WHERE a.fbilltypeid = @ClassType
AND a.fprojectID = 1
--取单据编号2
SELECT @BillIDLen = a.flength,
@BillID = a.fprojectval
FROM t_BillCodeRule a
LEFT OUTER JOIN t_option e ON a.fprojectid = e.fprojectid AND a.fformatindex = e.fid
LEFT OUTER JOIN t_checkproject b ON a.fbilltype = b.fbilltypeid AND a.fprojectval = b.ffield
WHERE a.fbilltypeid = @ClassType
AND a.fprojectID = 3
--设置返回值
SET @FullBillNo = (@BillNo + REPLICATE('0' , @BillIDLen - LEN(CAST(@BillID AS VARCHAR(50)))) + CAST(@BillID AS VARCHAR(50)))
BEGIN TRAN
-- 更新流水号
SET @TmpID = (SELECT FID
FROM t_BillCodeRule WITH(READUNCOMMITTED)
WHERE fbilltypeid = @ClassType
AND fprojectid = 3)
UPDATE t_BillCodeRule
SET fprojectval = fprojectval + 1 ,
flength = CASE WHEN (flength - LEN(fprojectval + 1)) >= 0
THEN flength
ELSE LEN(fprojectval + 1)
END
WHERE FID = @TmpID
UPDATE ICBillNo
SET FCurNo = (SELECT TOP 1 ISNULL(fprojectval - 1 , 1)
FROM t_BillCodeRule
WHERE fprojectid = 3
AND fbilltypeid = @ClassType)
WHERE fbillid = @ClassType
-- 更新注释流水号
SET @BillID = @BillID + 1
UPDATE ICBillNo
SET FDesc = @BillNo + '+' + REPLICATE('0' , @BillIDLen - LEN(CAST(@BillID AS VARCHAR(50)))) + CAST(@BillID AS VARCHAR(50))
WHERE FBillID = @ClassType
IF @@error = 0
BEGIN
SELECT @RBillNo = @FullBillNo
COMMIT
END
ELSE
BEGIN
ROLLBACK
SELECT @RBillNo = ''
END
RETURN
END
- sqlserver 常用语法
sqlserver查找 table, view, column select * from information_schema.tables where table_schema='bk' sele ...
- SqlServer常用语法总结
前言 近期公司做一个短信平台,写了一些关于统计方面的存储过程,今天刚好有空总结一下. 统计查询和性能提升 一.使用WITH AS提高性能简化嵌套SQL 首先,感谢@飞洋过海和@宋沄剑,通过阅读他们的博 ...
- Markdown通用的常用语法说明
前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...
- Markdown简介以及常用语法
Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- Markdown常用语法
什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...
- 2 hive的使用 + hive的常用语法
本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数
原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...
随机推荐
- python nt, bool, str 试题
# 1.有变量量name = "aleX leNb" 完成如下操作:name = "aleX leNb"# 1)移除 name 变量对应的值两边的空格,并输出处 ...
- Linux之定时任务crond
定时任务说明与分类 定时任务的应用场景举例 每天晚上 12点备份/etc/目录 tar 定时任务的三种分类 crond(crontab)定时任务软件(软件包cronie),用的最多的一种 atd,应用 ...
- android studio 定位具体的错误原因
编译一个数据监测APP的时候出现了报错: Error:Compilation failed; see the compiler error output for details. 在网上查到方法如下: ...
- centos7下kubernetes(3。部署kubernetes)
环境:三个centos7 K8s2是Master;K8s1是node1:K8s3是node2 官方文档:https://kubernetes.io/docs/setup/independent/ins ...
- 鼠标右键打开命令行cmd(管理员身份)
参考:https://blog.csdn.net/bdss58/article/details/54745380 添加到注册表 将下面命令保存为reg文件: Windows Registry Edit ...
- DBCA静默方式建库
使用DBCA的图形方式建库实在有诸多不便,但是使用静默方式建库就比较方便了,一个命令即可搞定. 使用dbca安装oracle数据库实例也有差不多两种方法:一种就是根据模板文件进行安装,在上文中提到了在 ...
- 用户对动态PHP网页访问过程,以及nginx解析php步骤
www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...
- AppCan10个超实用的APP必备插件,让你少敲80%代码
一个APP的需求来自于哪儿?产品.老板.客户….. 做程序员不容易,需求一句话,就是几千几万行代码!所幸,在AppCan平台开发APP,开发者只需完成应用的前端部分,至于各项复杂的功能,就交给AppC ...
- MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK
安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...
- 二维数组遍历的方式(for普通循环遍历、foreach循环遍历、toString方式遍历)
package com.Summer_0421.cn; import java.lang.reflect.Array; import java.util.Arrays; /** * @author S ...