一、存储过程

  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. vue的eventBus

    首先在main.js中 Vue.prototype.$eventBus = new Vue() A组件中通过触发事件或者其他什么,然后发射数据 this.$eventBus.$emit('key',' ...

  2. Maven-常规问题

    1.编译(compile)Maven项目时,报错: -Dmaven.multiModuleProjectDirectory system property is not set. 处理方案:Windo ...

  3. phpstorm 2017 关掉变量提示 parameter name hints

    配置面板中搜索 hints 路径 Editor > General > Appearance > Show parameter name hits 去掉前面的勾就行了

  4. Python 时间格式转换

    Python time, datetime模块常用方法 1.使用time模块,获取当前时间戳~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~import timetime.time( ...

  5. 在Vue中由后台数据循环生成多选框CheckBox时的注意事项

    多选框是一种非常常见的功能,有时候我们会根据后台返回的数据进行多选框渲染,之前做项目时遇到循环生成多选框时,v-model绑定的值会随着选中与取消改变,但页面却不会变化 的情况,后来测试了一下,发现多 ...

  6. Yii1 的数据库操作整理

    1.根据条件查询一个集合 $objectResult=Post::model()->findAll($condition,$params);$objectResult=Post::model() ...

  7. Transform 引起的 z-index "失效"

    重新学习CSS后的第三天,学习制作阴影的过程中,发现的问题:设置了box-shadow后展现的阴影: 添加transform:rotate(10deg);后的效果: 查看CodePen例子:阴影效果 ...

  8. oracle 单实例DG(闪回技术四)

    一,flashback Oracle Flashback技术是一组数据库特性,它可以让你查看数据库对象的过去状态,或者将数据库对象返回到以前的状态,而无需使用基于时间点的介质恢复.根据数据库的变化,闪 ...

  9. linux 运维基础之VM中安装centos6.X

    VM中安装centos详细教程 图片讲解:

  10. (转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

    Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80 ...