--临时表
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

转载于:https://www.cnblogs.com/RogerLu/p/9318163.html

sqlserver常用语法相关推荐

  1. sqlserver常用语法大全

    查看锁表 SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName FROM sys.dm_ ...

  2. SQLServer常用的日期和时间函数梳理

    今天给大家分享一下SQLServer常用的日期和时间函数知识笔记,希望对大家能有所帮助! 1.DATEADD(datepart,number,date) 作用:返回给指定日期加一个时间间隔后新的dat ...

  3. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  4. jsp 4种常用语法3个编译指令7个动作指令

    4种常用语法: 注释:<%--注释--%> 声明:<%!声明部分%> 输出:<%=%> 脚本:可以包含任何java可执行代码.例 <% for(int i=0 ...

  5. [转]C++/CLI与C#常用语法对比

    [转]C++/CLI与C#常用语法对比 Kenny Kerr 一篇名为C++: The Most Powerful Language for .NET Framework Programming文章中 ...

  6. 每天学一点儿shell:Shell的常用语法规则

    文章目录 Shell 参数传递 Shell 数组 Shell 基本运算符 算数运算符 关系运算符 布尔运算符 逻辑运算符 字符串运算符(重点) 文件测试运算符 Shell 常用语法 Shell 函数 ...

  7. 【shell】常用语法 -b file -c file -f file-d file -x file

    [shell]常用语法 -b file  -c file  -f file-d file  -x file      一.test条件判断 1,test文件测试: -b file     若文件存在且 ...

  8. Go Time常用语法

    Go Time常用语法 目录 获取当前时间戳和string类型的格式化时间 构造指定时间 时间戳和格式化时间相互转换 获取当前几月,几号,星期几 待续,用到什么补充什么 1. 获取当前时间戳和stri ...

  9. SQLServer常用的字符串函数梳理

    今天给大家分享一下SQLServer常用的字符串函数知识笔记,希望对大家能有所帮助! 1.ASCII(字符串表达式) 作用:返回表达式最左侧字符串的ASCII代码值. 示例:SELECT ASCII( ...

  10. SQLServer常用的配置函数笔记

    今天给大家分享一下SQLServer常用的配置函数知识,希望对初学者能有所帮助! 1.@@DATEFIRST @@Datefirst返回值tinyint 说明:datefirst指一周中的第一天,英语 ...

最新文章

  1. 实验吧 速度爆破
  2. 50行代码教AI实现动作平衡 | 附完整代码
  3. python3 读写中文文件
  4. 这样统计代码执行耗时,才足够优雅!
  5. 公式编辑语言:LaTeX/Advanced Mathematics
  6. 希尔排序(Shell Sort)
  7. 交换机命令行配置与VLAN
  8. python端口与c的区别_Python和C区别该如何理解?如何适应这种区别?
  9. ASP.NET母版页和内容页之间如何互相传值?
  10. mysql 开发进阶篇系列 7 锁问题(innodb锁争用情况及锁模式)
  11. 链表排序---迭代版本归并算法 + [leetcode]148. 排序链表
  12. bin文件如何编辑_每日学习:Linux文件与目录管理常用命令解析
  13. viper4android ddc,DDC工具箱app下载-DDC工具箱 安卓版v1.1-PC6安卓网
  14. echarts2 的引入方式
  15. ZeroMQ模式介绍
  16. 查询瀚高数据库的创建时间
  17. c mysql trans_MYSQL STRICT_TRANS_TABLES使用图解教程
  18. 计算机系女生电脑买什么牌子,适合女生的笔记本电脑 大学女生买什么电脑好...
  19. 毕设论文数据分析记录-part2:相关性分析
  20. 计算机没有开启还原的功能,win10系统无法开启系统还原功能的详细教程

热门文章

  1. web扫描工具-Nikto介绍与使用
  2. 是谁让你的 Linux 平稳运行?感谢封包人吧
  3. HDU 1242 特殊化带结构体BFS
  4. 【翻译】Ext JS 5的委托事件和手势
  5. [21] Mesh法线的生成算法
  6. 《自适应软件开发》—从奴隶主到领袖 1 序言
  7. Spring的基于AspectJ的AOP开发——Spring AOP(五)
  8. concat oracle 多个字符串_12个常用的JavaScript字符串方法
  9. 第一部分 第三章 1039-1058 答案合集
  10. java基础-(一)-JDK的下载和安装