SQLServer 中存储过程
SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
存储过程有三种返回:
1. 用return返回数字型数据
2. 用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)
3. 直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集
方法一:用return返回数字型数据
1. 创建存储过程
--SQLSERVER 2005示例数据库
USE AdventureWorks
GO
CREATE PROCEDURE checkstate
@param VARCHAR(11)
AS
IF (
SELECT StateProvince
FROM Person.vAdditionalContactInfo
WHERE ContactID = @param
) = 'WA'
RETURN 1
ELSE
RETURN 2;
GO
2. 在存储过程中调用
DECLARE @return_status INT;
EXEC @return_status = checkstate '9'; --将存储过程返回值赋给@return_status
SELECT 'Return Status' = @return_status;
GO
3. 在VS中调用
List<DbParameter> para = new List<DbParameter>();
para.Add(new SqlParameter("@param", 9));
SqlParameter pa = new SqlParameter();
pa.ParameterName = "@return";
pa.SqlDbType = SqlDbType.Int;
pa.Direction = ParameterDirection.ReturnValue;
para.Add(pa);
int i = DBHelper.ExecuteSql("checkstate", CommandType.StoredProcedure, para);
Response.Write(para[1].Value.ToString());
方法二:用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)
1. 创建存储过程
--SQLSERVER 2005示例数据库
USE AdventureWorks
GO
CREATE PROCEDURE OutPutValue
@param VARCHAR(11),
@param2 VARCHAR(11) OUTPUT
AS
IF (
SELECT StateProvince
FROM Person.vAdditionalContactInfo
WHERE ContactID = @param
) = 'WA'
SET @param2='Good'
ELSE
SET @param2='Bad'
GO
2. 在存储过程中调用
DECLARE @param1 NVARCHAR(100)
DECLARE @param2 NVARCHAR(100)
SET @param1='9'
EXEC OutPutValue '9',@param2 OUTPUT
SELECT @param2
3. 在VS中调用
List<DbParameter> para = new List<DbParameter>();
para.Add(new SqlParameter("@param", "9"));
SqlParameter pa = new SqlParameter();
pa.Direction = ParameterDirection.Output;
pa.ParameterName = "@param2";
pa.Size = 11;
para.Add(pa);
int i = DBHelper.ExecuteSql("OutPutValue ", CommandType.StoredProcedure, para);
//OutPut返回值
Response.Write(para[1].Value.ToString()); //输出返回值
方法三:直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集
1. 创建存储过程
--SQLSERVER 2005示例数据库
USE AdventureWorks
GO
CREATE PROCEDURE ReturnDataTable
AS
BEGIN
SELECT * FROM Person.vAdditionalContactInfo
END
GO
2. 在存储过程中调用
EXEC ReturnDataTable
3. 在VS中调用
//存储过程返回结果集可存放在DataTable
DataTable dt = DBHelper.GetDataTable("ReturnDataTable", CommandType.StoredProcedure);
SQLServer 中存储过程的更多相关文章
- Sqlserver中存储过程,触发器,自定义函数(二)
Sqlserver中存储过程,触发器,自定义函数: 自定义函数:1.函数类型:2.函数的参数和返回值: 1.函数类型:标量值函数,返回的是一个标量值表值函数:内联表值函数:多语句表值函数. 标量值函数 ...
- Sqlserver中存储过程,触发器,自定义函数(一)
Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...
- Sqlserver中存储过程,触发器,自定义函数
Sqlserver中存储过程,触发器,自定义函数: 1. 触发器:是针对数据库表或数据库的特殊存储过程,在某些行为发生的时候就会被激活 触发器的分类: DML触发器:发生在数据操作语言执行时触发执行的 ...
- SqlServer中存储过程中将Exec的执行结果赋值给变量输出
原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...
- SqlServer中存储过程 returnC#代码处理以及对应的MySQL如何改写
一.SqlServer 中 1. 创建表 create table testuser( id int, --primary key, names ), address ), paw ) ) 2.创建存 ...
- sqlserver 中存储过程的基础知识记录
1.什么是存储过程? 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句. 2.为什么要用存储过程? 1)存储过程只在创建时进行 ...
- Sqlserver中存储过程和游标的一些使用例子
/*带输入输出参数存储过程*/ ALTER PROCEDURE pro_test2 @userID INT, @maxUserID INT OUTPUT, @countUser INT OUTPUT ...
- SQLServer中存储过程StoredProcedure创建及C#调用(转)
此文作为入门了解用,转自http://www.2cto.com/database/201502/378260.html 存储过程就是已经编译好的.优化过的放在数据库服务器中的一些SQL语句:可供应用程 ...
- SqlServer和MySQL中存储过程out返回值处理C#代码
1.SqlServer中out处理 C#代码 #region"SqlServer中存储过程处理out返回值" //public void getdata() //{ // stri ...
随机推荐
- float f=3.4;是否正确?
float f=3.4;是否正确? 不正确.3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换 ...
- bean创建
看<spring源码解析>的笔记 1.通过@Bean创建bean,类上需要添加@Configuration @Configuration public class MainConfig { ...
- delphi Treeview用法
Treeview用于显示按照树形结构进行组织的数据. Treeview控件中一个树形图由节点(TreeNode)和连接线组成.TtreeNode是TTreeview的基本组成单元. ...
- Struts2配置详情
Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现 ...
- Electron是个啥?
于2013年作为构建Github上可编辑的文本编辑器Atom的框架而被开发出来 是目前开源开发者.初创企业和老牌公司常用的开发工具 是桌面应用框架 相当于一个浏览器的外壳,可以把网页程序嵌入到壳里面, ...
- NX二次开发-UFUN CSYS坐标系转换UF_CSYS_map_point
1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_curve.h> 5 #include <uf_csys.h> 6 ...
- 2019/11/12 CSP模拟赛&&考前小总结
写在前面的总结 离联赛只有几天了,也马上就要回归文化课了. 有点舍不得,感觉自己的水平刚刚有点起色,却又要被抓回文化课教室了,真想在机房再赖几天啊. 像19/11/11那场的简单题,自己还是能敲出一些 ...
- linux网络速率监控
#!/bin/bash #作者:fafu_li #时间: #监控网卡传输速率 source /etc/profile #加载系统环境变量 source $HOME/.bash_profile #加载用 ...
- C#委托的实质
1,委托时方法指针: 2,委托时一个类,对其进行实例化的时候,要将引用的方法作为他的构造方法的参数.
- 什么是css块级元素和内联元素
CSS文档流与块级元素(block).内联元素(inline),文档流这个概念理解了它,一堆CSS布局的理论都 变得易于理解,并且体会到CSS这套设计的合理性所在. 文档流 将窗体自上而下分成一行行, ...