sql存储过程输出
sql server存储过程 输出结果集 还是比较简单的.
直接在 存储过程里面执行 SQL 语句就可以了。
例如:
-- 测试返回结果集的存储过程
CREATE PROCEDURE testProc
AS
BEGIN
SELECT 'Hello 1' AS A, 'World 1' AS B UNION ALL
SELECT 'Hello 2' AS A, 'World 2' AS B;
END
go
剩下的, 就是你用 别的开发语言, 例如 C# 什么的 , 调用这个存储过程, 获取结果集了。
㈡ sql存储过程 输出参数
SQL存储过程输出参数:
--===================【创建存储过程】=====================
USE[Message]
GO
/******Object:StoredProcere[dbo].[读取外部数据库查询]ScriptDate:10/24/201205:39:16******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
--=============================================\Working没有变1,错误码没有测试,计划时间测试,企业名称
createPROCEDURE[dbo].[数据库查询]
@SmsContentvarchar(20)='1231',--输入参数
@bj1intout--输入出参数
AS
BEGIN
SELECT@bj1=count(Id)fromsss
END
--===============【调用】==================
USE[Message]
DECLARE@return_valueint
EXEC[dbo].[数据库查询]'1231',@return_valueoutput
SELECT@return_value
㈢ plsql中怎么调用带输出参数的存储过程
1、首先打开一个的PLSQL Developer的界面中,点击左上角的工具,如下图所示。
㈣ sql server 中 一个要输入参数和输出参数的存储过程。
1、首先我们需要打开SQL Server Managment管理工具,新建一个表。
㈤ SQL 创建存储过程 输出对比参数
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[proc_return]
@货物编号 nvarchar(50),--不清楚你的这个货物编号是要传进来还是要 在存储过程获取
@ReturnCount Int OutPut
AS
Begin
Begin TransacTion trans
Set @ReturnCount = 3 --这里先默认为3或者其他 ,如果要检测其他错误的话 会要用到 食物
--执行取得 货物编号 语句或者 存储过程
if(@货物编号='') --这里可以看成判断没有给出 货物编号
begin
select @ReturnCount=1
end
If Exists(Select * From 货物表 Where 货物编号 = @货物编号)--判断是否存在
Begin
select @ReturnCount=0
End
Else
Begin
select @ReturnCount=2
End
if @@error<>0 --判断如果以上执行有任何一条出现错误
begin
rollback tran --开始执行事务的回滚,恢复的转账开始之前状态
select @ReturnCount=3
end
else
begin
commit tran
end
End
呵呵 希望对你有所帮助。
㈥ sql 怎么执行带输出参数的存储过程
1、
对象资源管理器
中选中你要执行的存储过程
2、右击选择
对话框中的执行存储过程...
3、在出现的对话框中填入你参数的值
点击确定
㈦ PHP得到mssql的存储过程的输出参数功能实现
在开发过程中可能会遇到无法取得MSSQL存储过程的输出参数,很多朋友都不知道该怎么办,本文将详细介绍PHP得到mssql的存储过程的输出参数功能实现,需要了解的朋友可以参考下
复制代码
代码如下:
<?
$conn=mssql_connect("127.0.0.1","user","passwd");
mssql_select_db("mydb");
$stmt=mssql_init("pr_name",$conn);//
$a=50001;
mssql_bind($stmt,"RETVAL",$val,SQLVARCHAR);
//用于直接返回return
-103此类的值。
mssql_bind($stmt,"@outvar",$b,SQLVARCHAR,true);//用于返回在存储过程中定义的输出参数
mssql_bind($stmt,"@invar",$a,SQLINT4);
$result
=
mssql_execute($stmt,true);//不能返回结果集,只能得到输出参数
//$result
=
mssql_execute($stmt,false);
//返回结果集
//$records=mssql_fetch_array($result);
//print_r($records);
//mssql_next_result($result);下一个结果集,当等于FALSE的时候下一个就是输出参数
echo
$b;
echo
$val;
?>
下面这些是从别的地方看到的。
小麻烦:
我们按照惯例使用了一个MS
Sql
Server的存储过程procA,它给出了一个输出参数nReturn,
而且返回了一个结果集。
在如何让PHP调用这个procA的时候,我们遭遇了一点小麻烦。
鱼肉和熊掌不可兼得:
我们本来希望这样的代码能够既得到输出参数,又得到返回的结果集:
复制代码
代码如下:
//
初始化要传进存储过程的参数们:
$nYear
=
2004;
$nPageSize
=
20;
$nPageNo
=
1;
//
Initializes
a
stored
procere:
$stmt
=
mssql_init("proc_stat_page",
$db_mssql->Link_ID);
//
绑定输入参数:
mssql_bind($stmt,
"@nReturn",
$nReturn,
SQLINT4,
TRUE);
mssql_bind($stmt,
"@nYear",
$nYear,
SQLINT4);
mssql_bind($stmt,
"@nPageSize",
$nPageSize,
SQLINT4);
mssql_bind($stmt,
"@nPageNo",
$nPageNo,
SQLINT4);
//
执行存储过程,得到QueryID:
$db_mssql->Query_ID
=
mssql_execute($stmt,false);
虽然得到了结果集,但是,这样$nReturn参数是拿不到输出参数的。
如果把最后一句话改为:
$db_mssql->Query_ID
=
mssql_execute($stmt,true);
输出参数倒是拿到了,结果集又没有了。
好像是一个鱼肉和熊掌不可兼得的样子。
难道PHP连这个都做不到?PHP手册中也没有讲这个问题。
来自于PHP维护者的解释:
原本我们这种调用办法是PHP
4.3版本之前肯定是支持的。
“但是,自从PHP
4.3版本之后,”他们说,“为了能够兼容存储过程返回多个结果集,PHP改变这个特性。”
“如果你不需要结果集,你应该设置mssql_execute的第二个可选参数为TRUE,这样mssql_execute方法之后你就可以得到输出参数了。”
“如果你需要返回的结果集们,你应该为每一个结果集调用一次mssql_next_result。在最后一个结果集返回之后,你再调用mssql_next_result就会得到返回值FALSE,这时候,你就可以访问输出参数了。”
解决:
在最后我们补上一句话:
//
After
the
last
result
has
been
returned
the
return
value
will
have
the
value
returned
by
the
stored
procere.
mssql_next_result($db_mssql->Query_ID);
立刻,魔法生效了:
PHP填充了正确的输出参数到$nRetVal里。
㈧ sql执行存储过程 如何输出结果
sql
server存储过程
输出结果集
还是比较简单的.
直接在
存储过程里面执行
sql
语句就可以了。
例如:
--
测试返回结果集的存储过程
create
procere
testproc
as
begin
select
'hello
1'
as
a,
'world
1'
as
b
union
all
select
'hello
2'
as
a,
'world
2'
as
b;
end
go
剩下的,
就是你用
别的开发语言,
例如
c#
什么的
,
调用这个存储过程,
获取结果集了。
㈨ 如何在一个PL/SQL存储过程中输出一个数据集
如何在一个PL/SQL存储过程中输出一个数据集
我记得sql
server
可以直接返回的
不需要传入数据集参数,只要最后一条是你要执行的SQL就会自动返回.