csqlserver存儲過程返回值
我嘗試過,不知道怎麼使用返回值,但是使用了select 1,select 0這樣的,
然後用Command.ExecuteScalar方法
❷ 怎樣讓SqlServer的存儲過程返回結果集
1、返回結果集
這是客戶端應用程序返回結果的最通用的方法。結果集是通過使用SELECT語句選擇數據產生的。結果集可以從永久表、臨時表或局部變數中產生。將結果返回到另一個存儲過程不是一種有效的方法。存儲過程不能訪問另一個存儲過程建立的結果集。
例如從永久表中返回結果集:
USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromPermtable
AS
SELECT au_iname FROM authors
例如從局部變數中創建結果集:
USE pubs
GO
CREATE PROCEDURE ap_CreateResultFromVariable
AS
DECLARE @au_iname char(20)
SELECT @au_iname = au_iname FROM authors
WHERE au_id = 『172-32-1176』
SELECT @au_id
GO
❸ sqlserver資料庫取返回值(字元串類型)
java的啊?
錯誤提示給你了 :
在將 varchar 值 'sdfsgsf' 轉換成數據類型 int 時失敗。
❹ sqlserver 2個返回值參數的存儲過程調用方法
你這個是oracle的,sqlserver不是這樣實現的。
返回值int 你要這樣定義
ALTER PROCEDURE [dbo].[proc_res_get_check_result] (
@i_olt_ip VARCHAR output
)
AS
然後結果數據集直接在存儲過程中
select * from
(
select ro.onu as onu,ro.olt_ip as olt_ip,ro.pon as pon,ro.onu_id as onuid,ro.check_time as check_time,ro.flag as flag,
ro.onu_name as res_name,ro.onu_sn as res_sn,po.onu_dev_name as ems_name,po.loid as ems_sn
from res_onu_data ro
left join pm_onu po on po.onu_name = ro.onu
where ro.olt_ip = @i_olt_ip
union
select re.onu as onu,re.olt_ip as olt_ip,re.pon as pon,re.onu_id as onuid,re.check_time as check_time,'20000000000000000000' as flag,
'' as res_name,'' as res_sn,po.onu_dev_name as ems_name,po.loid as ems_sn
from res_check_ems re,pm_onu po
where po.onu_name = re.onu and re.olt_ip = @i_olt_ip
)rr order by rr.onu;
就可以了
❺ sqlserver怎麼獲取存儲過程的返回值
1.OUPUT參數返回值
CREATEPROCEDURE[dbo].[nb_order_insert](
@o_buyeridint,
@o_idbigintOUTPUT
)
AS
BEGIN
SETNOCOUNTON;
BEGIN
INSERTINTO[Order](o_buyerid)
VALUES(@o_buyerid)
SET@o_id=@@IDENTITY
END
END
2.存儲過程中獲得方法:
DECLARE@o_buyeridint
DECLARE@o_idbigint
DECLARE@resultbit
EXEC@result=[nb_order_insert]@o_buyerid,o_idoutput
3.SELECT 數據集返回值
CREATEPROCEDURE[dbo].[nb_order_select](
@o_idint
)
AS
BEGIN
SETNOCOUNTON;
SELECTo_id,o_buyeridFROM[Order]
WHEREo_id=@o_id
GO
❻ 如何使sqlserver存儲過程返回varchar
呵呵,換個思路,不用返回值,用結果集返回,這樣簡單也通用
crate proc 存儲過程名
as
begin
select '返回值' as returnvalue
end
❼ SqlServer如何獲取存儲過程的返回值
存儲過程可以返回一個整數值,方式是:
exec @r = myproc;
或者通過output.參數獲得返回值,這樣的返回值不限類型;
有過程mypro
❽ vb6.0獲取sqlserver存儲過程的返回值
Dim Cnn As ADODB.Connection
Dim Rs As ADODB.Recordset
Dim Cnn_c As New ADODB.Command
Dim cnn_p As ADODB.Parameter
Cnn.ConnectionString = ConnStr'連接字元串
With Cnn
'.Provider = "MSDASQL"
.CursorLocation = adUseClient
.Open
End With
Set Cnn_c.ActiveConnection = Cnn
With Cnn_c
.CommandType = adCmdStoredProc
.CommandText = "存儲過程名"
End With
Set cnn_p = Cnn_c.CreateParameter("ReTurn", adInteger, adParamReturnValue)
Cnn_c.Parameters.Append cnn_p
『這里添加其他參數
Set Rs = Cnn_c.Execute'執行
'Cnn_c.Parameters("ReTurn")這就是返回值
Rs.close
Cnn.Close
Set cnn_p = Nothing
Set Cnn_c = Nothing
Set Rs = Nothing
Set Cnn = Nothing
❾ sqlserver存儲過程結果是'001'(varchar),return回來的值卻是'1'
createprocsp_xxx_get_id(@o_idvarchar(15)output)
as
begin
set@o_id='001';
end
GO
declare@resultvarchar(15);
execsp_xxx_get_id@resultoutput
select@resultasid
上面是一個例子,可以參考。
存儲過程可以返回整數。你這個例子是將001轉化為整數1了,如果id是其它字元如'abc',則你那種調用方式會產生錯誤。
❿ sqlserver資料庫存儲過程返回值只能是integer類型嗎 不能返回字元串嗎
樓主所說的這種是返回語句執行後影響的行數,是只有int型的,如樓上定義的,可以返回多種類型,還可以返回記錄集
如
create procere usp_select
@where nvarchar(100)
as
begin
select * from mytable where condition=@where
end
return
go
--------------------------------------
存儲過程
當 SET NOCOUNT 為 ON 時,不返回計數(表示受 Transact-SQL 語句影響的行數)。
當 SET NOCOUNT 為 OFF 時,返回計數。
如果存儲過程中包含的一些語句並不返回許多實際的數據,則該設置由於大量減少了網路流量,因此可顯著提高性能。