一、存储过程

  1、新增操作存储过程

--------------1、新建 增加学生的存储过程----------------------------
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

  2、执行存储过程

--执行存储过程
exec addStu 20
--删除存储过程
drop procedure addStu

  3、执行语句块

----------------执行语句块---------------------------------------------------------------------
declare @STR NVARCHAR(4000);
declare @count int;
declare @time int;
set @count = 100;
begin
--将表student中最大id的值赋值给变量@count
select @count = max(ID) from student;
--
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

  4、修改存储过程

-----------------------修改存储过程---------------------------------------------------------------
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

  5、java执行存储过程

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);
}

sqlserver学习2---java执行存储过程的更多相关文章

  1. Mysql学习---使用Python执行存储过程

    使用Python执行存储过程 使用Python执行存储过程[2部分]: 1.执行存储过程,获取存储过程的结果集  2.将返回值设置给了  @_存储过程名_序号 = #!/usr/bin/env pyt ...

  2. Java执行存储过程

    1.JDBC调用存储过程: CallableStatement /** *p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 *其余地方写法固定 */ CallableStateme ...

  3. 【SQLSERVER学习笔记】分页存储过程+调用

    USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[存储过程名] @pageI ...

  4. JAVA使用JDBC技术操作SqlServer数据库执行存储过程

    Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...

  5. Java中执行存储过程和函数(web基础学习笔记十四)

    一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. CallableStatement 接口继承自PreparedStatement 接口.所以CallableS ...

  6. java 执行mysql 8.0.11存储过程报错The user specified as a definer ('root'@'10.%.%.%') does not exist解决办法

    执行存储过程,报错 java.sql.SQLException: The user specified as a definer ('root'@'10.%.%.%') does not exist ...

  7. Java中执行存储过程和函数

    装载于:http://www.cnblogs.com/liunanjava/p/4261242.html 一.概述 如果想要执行存储过程,我们应该使用 CallableStatement 接口. Ca ...

  8. 【学习】java下实现调用oracle的存储过程和函数

    在oracle下创建一个test的账户,然后按一下步骤执行: 1.创建表:STOCK_PRICES --创建表格CREATETABLE STOCK_PRICES( RIC VARCHAR(6) PRI ...

  9. MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

随机推荐

  1. sharepoint_study_1

    描述:机器上进行SharePoint开发,需要SQL Server提供最基本的服务 解决: SQL Server 的数据库引擎: SQL Server 代理: SQL Server 浏览器组件:

  2. 167 Two Sum-Input array is sorted, 125 Valid Palindrome,344

    注意这两个元素不能是相同的. 解法一:二分查找法,逐一取数组中的值,然后second = target - numbers[i] , 用二分查找法求第二个值. 时间复杂度:O(nlongn) clas ...

  3. 认识CSS中css的三大特性:层叠性、继承性以及优先级

    前端之HTML.CSS(四) CSS CSS三大特性 层叠性:多种样式的叠加,一个属性通过两个选择器设置在同一个元素上,后一个样式会把前一个样式层叠(覆盖).层叠性的两种情况:第一种样式冲突时,后样式 ...

  4. python爬虫之User-Agent用户信息

    python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览 ...

  5. BNU34067——Pair——————【找规律】

    Pair Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: M ...

  6. React之特点及常见用法

    1.什么是React? React是一个用于构建用户界面的JavaScript库.主要用于构建UI,很多人认为Reatc是MVC中的V(视图). React起源于Facebook的内部项目,用来架构I ...

  7. s中的闭包

    今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易. 当然之所以闭包难理解,个人觉得是基础知识掌握的不牢,因为 ...

  8. 使用Git(msysgit)和TortoiseGit上传代码到GitHub

    1.准备 下载Git for Windows (msysgit) 下载TortoiseGit 安装过程很简单,一直点击下一步到完成即可. 2.配置TortoiseGit 1.双击TortoiseGit ...

  9. [转]前端HTML-CSS规范

    原文:http://www.cnblogs.com/whitewolf/p/4491707.html 黄金定律 一个项目应该永远遵循同一套编码规范! 不管有多少人共同参与同一项目,一定要确保每一行代码 ...

  10. c# 文件名排序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...