1、存儲過程java
一、新增操做存儲過程sql
--------------一、新建 增長學生的存儲過程---------------------------- set IDENTITY_INSERT student on go create procedure addStu(@maxcount BIGINT) as begin DECLARE @count int; set @count = 0; while(@count<@maxcount) begin if(@count=2) begin insert into student values('小葉','女',20+@count,GETDATE(),GETDATE()); end else if(@count%3=0) begin insert into student values('小啦啦啦啦啦3','女',10+@count,GETDATE(),GETDATE()); end else insert into student values('小花'+cast(@count as varchar(1024)),'男',20+@count,CONVERT(VARCHAR(10),GETDATE(),120),DATEADD(MONTH,2,GETDATE())); set @count = @count +1; end end go set IDENTITY_INSERT student off
二、執行存儲過程spa
--執行存儲過程 exec addStu 20 --刪除存儲過程 drop procedure addStu
三、執行語句塊code
----------------執行語句塊--------------------------------------------------------------------- declare @STR NVARCHAR(4000); declare @count int; declare @time int; set @count = 100; begin --將表student中最大id的值賦值給變量@count select @count = max(ID) from student; --201810 select @time = CAST(CONVERT(VARCHAR(6),MAX(CREATE_TIME),112)AS INT) from student; set @STR = 'select * from dbo.student where id <='+cast(@count as NVARCHAR(4000)); --執行sql語句:@STR EXEC SP_EXECUTESQL @STR end go
四、修改存儲過程blog
-----------------------修改存儲過程--------------------------------------------------------------- ALTER PROCEDURE PROC_INSERT_DATA_DETAIL @DealerID varchar(50), @FieldName varchar(2000), @FieldValue varchar(2000) AS BEGIN DECLARE @Count INT DECLARE @StrSQL VARCHAR(2000) SET @Count = (SELECT COUNT(*) FROM myDATA_Details WHERE DealerID = @DealerID) IF (@COUNT>0) BEGIN SET @StrSQL = 'UPDATE myDATA_Details SET '+ @FieldName + ' = ''' +@FieldValue + ''' WHERE DealerID = '+ @DealerID EXEC(@StrSQL) END ELSE BEGIN INSERT INTO myDATA_Details (DealerID) VALUES (@DealerID) SET @StrSQL = 'UPDATE myDATA_Details SET '+ @FieldName + ' = ''' +@FieldValue + ''' WHERE DealerID = '+ @DealerID EXEC(@StrSQL) END END
五、java執行存儲過程get
package com.xiamgmu.base.utils; import java.sql.CallableStatement; import java.sql.Connection; public class UtilsPro { /** * 建立新建的存儲過程 * @param args * String procedure = "{call addStu(100)}"; */ public static void runPrcsummone(String procedure){ Connection conn = null; CallableStatement cstmt = null; try { conn = UtilsDao.getConnection(); //預處理存儲過程 cstmt = conn.prepareCall(procedure); //執行存儲過程 cstmt.execute(); } catch (Exception e) { // TODO: handle exception }finally { try { if(cstmt != null) { cstmt.close(); } if(conn != null) { conn.close(); } } catch (Exception e) { // TODO: handle exception } } } public static void main(String[] args) { UtilsPro pro = new UtilsPro(); String procedure = "{call addStu(100)}"; UtilsPro.runPrcsummone(procedure); }