SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)

存储过程有三种返回:   

1.   return返回数字型数据   

2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   

3.   直接在存储过程中用select返回结果集可以是任意的select语句这意味着是任意的返回结果集

 

方法一:用return返回数字型数据 

1. 创建存储过程

--sqlSERVER 2005示例数据库

USE AdventureWorks

GO

CREATE PROCEDURE checkstate 

@param VARCHAR(11)

AS

IF (

       SELECT StateProvince

       FROM   Person.vAdditionalContactInfo

       WHERE  ContactID = @param

   ) = 'WA'

    RETURN 1

ELSE

    RETURN 2;

GO

2. 在存储过程中调用

DECLARE @return_status INTEXEC @return_status checkstate '9';  --将存储过程返回值赋给@return_status

SELECT 'Return Status' @return_statusGO

3. VS调用

 List<DbParameterpara = new DbParameter>();

        para.Add(sqlParameter("@param", 9));

        sqlParameter pa = sqlParameter();

        pa.ParameterName = "@return";

        sqlDbType = sqlDbType.Int;

        Direction = ParameterDirection.ReturnValue;

        Add(pa);

        int i = DBHelper.Executesql("checkstate"CommandType.StoredProcedurepara);

        Response.Write(para[1].Value.ToString());

 

 

方法二:用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行)   

1. 创建存储过程

OutPutValue 

),

@param2 ) OUTPUT

'WA'

   SET @param2='Good'

ELSE

   'Bad'

@param1 NVARCHAR(100@param1'9'

OutPutValue@param2

3. VS调用

     "9"));

        Output;

        "@param2";

        Size = 11;

        "OutPutValue ",1)">para);

        //OutPut返回值

        ToString());  //输出返回值

 

 

方法:直接在存储过程中用select返回结果集,可以是任意的select语句,这意味着是任意的返回结果集  

1. 创建存储过程

ReturnDataTable

BEGIN

SELECT * FROM vAdditionalContactInfo

END 

ReturnDataTable

3. VS调用

//存储过程返回结果集可存放在DataTable

 DataTable dt = GetDataTable("ReturnDataTable",1)">StoredProcedure); 

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 &#39;EastRiver&#39; 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...