--临时表
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常用语法的更多相关文章

  1. sqlserver 常用语法

    sqlserver查找 table, view, column select * from information_schema.tables where table_schema='bk' sele ...

  2. SqlServer常用语法总结

    前言 近期公司做一个短信平台,写了一些关于统计方面的存储过程,今天刚好有空总结一下. 统计查询和性能提升 一.使用WITH AS提高性能简化嵌套SQL 首先,感谢@飞洋过海和@宋沄剑,通过阅读他们的博 ...

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

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

  4. Markdown简介以及常用语法

    Markdown简介以及常用语法 最近发现用markdown记录东西很方便,感觉和emacs的org mode很类似,但是windows下使用emacs不是很方便.特此记录一下markdown常用的语 ...

  5. Sql常用语法以及名词解释

    Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...

  6. Markdown常用语法

    什么是Markdown Markdown 是一种方便记忆.书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档. 通过Markdown简单的语法,就可以使普通文本内容具有 ...

  7. 2 hive的使用 + hive的常用语法

    本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...

  8. sql 常用语法汇总

    Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...

  9. ylb:SQLServer常用系统函数-字符串函数、配置函数、系统统计函数

    原文:ylb:SQLServer常用系统函数-字符串函数.配置函数.系统统计函数 ylbtech-SQL Server:SQL Server-SQLServer常用系统函数 -- ========== ...

随机推荐

  1. SQL IN 操作符

    IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值. SQL IN 语法 SELECT column_name(s) FROM table_name WHERE column_name ...

  2. P1024 一元三次方程求解(二分答案)

    思路: 求这个根,然后有一个关键的条件|x1-x2|>=1,然后就是从-100,枚举到+100,每次二分(i, i+1)注意如果f(i)*f(i+1)>0则不进行二分,如果,你觉得这样的值 ...

  3. Linux中的cat、more、less、head、tail命令

    cat [OPTION]... [FILE]... -E:显示行结束符$ -n:对显示出的每一行进行编号 cat后面可以加多个文件,也就是说可以把多个文件连接起来,然后dump到标准输出. 另外cat ...

  4. Oracle查询数据库中所有表的记录数

    1.Oracle查询数据库中所有表的记录数,但是有可能不准建议用第二种方式进行查询 select t.table_name,t.num_rows from user_tables t 2.创建orac ...

  5. ssm框架整合+Ajax异步验证

    SSM框架是目前企业比较常用的框架之一,它的灵活性.安全性相对于SSH有一定的优势.说到这,谈谈SSM和SSH的不同点,这也是企业常考初级程序员的面试题之一.说到这两套框架的不同,主要是持久层框架Hi ...

  6. 《HTTP协议:菜鸟入门系列》

    很多测试人员在有了一定的测试经验(一般是1-2年)后,就会陷入瓶颈阶段,想提升,但不知道如何提升,学习又没有比较明确的方向,曾经我也是... 那么,我建议系统的学习一下HTTP协议,好处很多:对接口测 ...

  7. Redis学习之字典源码分析

    字典,又叫映射,是一种用于保存键值对的抽象数据结构 划重点:抽象数据结构 Redisd字典使用哈希表作为底层实现,一个哈希表里面可以有多个哈希表结点,而每个哈希表结点就保存了字典中的一个键值对 一.哈 ...

  8. MongoDB的分片集群搭建

    MongoDB的最为自豪的一个特色之一,分片. 参考官方文档: https://docs.mongodb.com/manual/sharding/  单机压力,高频查询CPU,IO 单表压力,百万千万 ...

  9. CRC-16 (Modbus)

    typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #defi ...

  10. [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子

    [Spark][Python][DataFrame][RDD]DataFrame中抽取RDD例子 sqlContext = HiveContext(sc) peopleDF = sqlContext. ...