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的位置(不建議)