获取存储过程返回值.doc
文本预览下载声明
sqlserver获取存储过程返回值 1.OUPUT参数返回值
[sql] view plaincopyprint?
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??
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
存储过程中获得方法:
DECLARE?@o_buyerid?intDECLARE?@o_id?bigintEXEC?[nb_order_insert]?@o_buyerid,@o_id?output
2.RETURN过程返回值
CREATE?PROCEDURE?[dbo].[nb_order_insert](@o_buyerid?int?,@o_id?bigint?OUTPUT)ASBEGINSET?NOCOUNT?ON;IF(EXISTS(SELECT?*?FROM?[Shop]?WHERE?[s_id]?=?@o_shopid))BEGININSERT?INTO?[Order](o_buyerid?)VALUES?(@o_buyerid?)SET?@o_id?=?@@IDENTITYRETURN?1?—?插入成功返回1ENDELSERETURN?0?—?插入失败返回0END
存储过程中的获取方法
DECLARE?@o_buyerid?intDECLARE?@o_id?bigintDECLARE?@result?bitEXEC?@result?=?[nb_order_insert]?@o_buyerid?,o_id?bigint?
3.SELECT 数据集返回值
CREATE?PROCEDURE?[dbo].[nb_order_select](@o_id?int)ASBEGINSET?NOCOUNT?ON;SELECT?o_id,o_buyerid?FROM?[Order]WHERE?o_id?=?@o_idGO
存储过程中的获取方法(1)、使用临时表的方法
CREATE?TABLE?[dbo].[Temp]([o_id]?[bigint]?IDENTITY(1,1)?NOT?FOR?REPLICATION?NOT?NULL,[o_buyerid]?[int]?NOT?NULL)INSERT?[Temp]?EXEC?[nb_order_select]?@o_id–?这时?Temp?就是EXEC执行SELECT?后的结果集SELECT?*?FROM?[Temp]DROP?[Temp]?—?删除临时表
(2)、速度不怎么样.(不推荐)
SELECT?*?from?openrowset(’provider_name,Trusted_Connection=yes’,exec?nb_order_select’)
1.获取Return返回值
//存储过程//Create PROCEDURE MYSQL//???? @a int,//???? @b int//AS//???? return @a + @b//GOSqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[LocalSqlServer].ToString());conn.Open();SqlCommand MyCommand = new SqlCommand(MYSQL, conn);MyCommand.CommandType = CommandType.StoredProcedure;MyCommand.Parameters.Add(new SqlParameter(@a, SqlDbType.Int));MyCommand.Parameters[@a].Value = 10;MyCommand.Parameters.Add
显示全部