sql获取存储过程返回值
A. 怎么获取存储过程的返回值
楼主会在C#中使用存储过程吗?
如果会的话,sql执行函数赋值给一个变量就可以了
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = "Data Source = 数据源;uid=sa;pwd = ;database=数据库名";
cnn.Open();//数据库连接
//设置存储过程参数
SqlParameter prm;
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandType = CommandType.StoredProcere;
cmd.CommandText = "存储过程名";
//项目类型
prm = new SqlParameter();
prm.ParameterName = "参数名1";
prm.SqlDbType = SqlDbType.VarChar;
prm.Size = 50;
prm.Value = comboBox1.Text;
prm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(prm);
...
//可以继续设置参数,参数个数由存储过程的具体内容决定
cmd.ExecuteNonQuery();//执行存储过程
实际上如果要获取存储过程的返回值,只要将上面一句代码修改成:
int retn = cmd.ExecuteNonQuery();
就可以了
B. sql存储过程怎么返回string类型的返回值怎么返回多个值
1.如果是返回一个值,可以在存储过程里增加参数进行返回,如:
create proc aaa(@ReturnValue varchar(100) output)
……
你在存储过程里设置@ReturnValue的值就行了。
VB里运行存储过程,然后访问ReturnValue参数就行了。
2、如果是返回多列数据,就直接在存储过程里select表,VB里运行存储过程后,可以获取返回表。
C. 在 sql select 语句中 如何获取 存储过程的返回值
SQL Server中存储过程的返回值不是通过return语句返回的(return语句是在用户自定义函数中使用的),而是通过存储过程的参数来返回,在定义存储过程的参数时使用关键字output来指定此参数是返回值。
而在调用存储过程时,也必须使用关键字给接收返回值的变量,这样才能在调用时获得存储过程的返回值。
示例:
createproceredbo.pr_add@aint,@bint,@cintoutput
as
set@c=@a+@b
go
调用:
declare@vint
executedbo.pr_add1,2,@voutput
select@v
D. SQL 取存储过程的返回值
存储过程应该有返回值的,
问题应该出现在你vb6的调用语句中(第二个参数是输出类型的参数,
是否有正确设置).
你可以在查询分析器中执行此存储过程,
看看返回的结果.
还有,
此存储过程中的select语句最好加上top
1限制,
因为你只要判断是否能选到结果而已:
select
top
1
*
from
tb_package
where
packagenumber=@a
E. 如何获取存储过程返回值
1.OUPUT参数返回值
CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END
2.存储过程中获得方法:
DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id output
3.SELECT 数据集返回值
CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO
F. SQL Server,取存储过程返回值。
如果返回标量值的话,例如文章的个数,可以使用储存过程的输出(OUTPUT)参数。在定义存储过过程时为参数指定OUTPUT关键字。C#调用存储过程时指定参数SqlParameter对象的Direction属性为Output。
如果是返回多个结果集的话,可以直接在存储过程中使用多个select查询就行。在C#代码中使用SqlDataReader对象的NextResult方法提取下一个结果集。
请采纳答案,支持我一下。
G. SQL SERVER里面如何在存储过程里面获取另一个存储过程所返回的表的数据
第一个存储过程(被调用的)里定义OUTPUT参数,如:
...
Create Procere 存储过程1
@参数1 数据类型
@参数2 数据类型 output
AS
存储过程语句
第二个存储过程:
...
Create ...
...
AS
Declare @本地参数1
Declare @本地参数2
EXEC 存储过程1 @本地参数1,@本地参数2 OUTPUT
--这样@本地参数2就可以直接使用了,带回来的是存储过程1中的@参数2.
H. SQL中存储过程调用存储过程,怎么取返回值
存储过程中的第一个参数 @title 将接收由调用程序指定的输入值,而第二个参数 @ytd_sales 将向调用程序返回该值。SELECT 语句使用 @title 参数以获得正确的 ytd_sales 值,并将该值赋予 @ytd_sales 输出参数。
CREATE PROCEDURE get_sales_for_title
@title varchar(80), -- This is the input parameter.
@ytd_sales int OUTPUT -- This is the output parameter.
AS
-- Get the sales for the specified title and
-- assign it to the output parameter.
SELECT @ytd_sales = ytd_sales
FROM titles
WHERE title = @title
RETURN
GO
I. SQL存储过程返回值问题
USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
---------1
alter tablle dbo.Dim_Structure add updateSTATUS varchar(6)
go
---------1
ALTER PROCEDURE [dbo].[USP_ZJ_Dim]
AS
SET NOCOUNT ON;
BEGIN
declare @StructureType nvarchar(255)
declare @CatecodeID nvarchar(255)
declare @StructureCode nvarchar(255)
declare @Owner nvarchar(255)
declare @Email nvarchar(255)
---------------0
declare ZJ_dim cursor for
select [StructureType],[CatecodeID],[StructureCode],[Owner],[Email]
from test.dbo.lander
Open ZJ_Dim
Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email
While @@FETCH_STATUS=0
Begin
Update dbo.Dim_Structure
Set Owner =@Owner,Email=@Email
where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
--------------------2
if @@rowcount>0
update dbo.Dim_Structure set updateSTATUS='sucess' where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
else
update dbo.Dim_Structure set updateSTATUS='failer' where StructureType=@StructureType and CatecodeID=@CatecodeID and StructureCode=@StructureCode
--------------------2
Fetch next from ZJ_dim into @StructureType,@CatecodeID,@StructureCode,@Owner,@Email
End
Close ZJ_Dim
-----------3
deallocate ZJ_Dim
------------3
End
--1添加新列,如果有updateSTATUS字段就不用添加了,把我代码里的updateSTATUS换成已有字段名
--2我添加的代码
--3建议注销游标,游标不注销太耗费内存
--0可将1写道0的位置(不建议)