如何编写存储过程以使表数据进入数据集

时间:2011-03-04 10:50:20

标签: sql-server

我是SQL Server新手。

在SQL Server中使用存储过程可以帮助我将表数据作为数据集返回吗?

任何人都可以帮忙解释如何编写存储过程吗?

3 个答案:

答案 0 :(得分:1)

存储过程是一组编译为单个执行计划的Transact-SQL语句。

要在SQL中创建存储过程,您必须编写类似这样的内容。

CREATE PROCDEURE [PROCEDURE_NAME]  (
   // ... Add parameter list ...
   // ..........................
)
AS 
BEGIN  
     // ... SQL statements ....
     // .......................
     // .......................
END  

答案 1 :(得分:0)

你需要看一下:

CREATE PROCEDURE <name>
BEGIN
 ...some SQL statements
END

如果在Visual Studio中使用数据集,则不需要存储过程来填充数据集。您可以简单地编写SQL语句,例如

SELECT * FROM table

答案 2 :(得分:0)

创建返回数据集的存储过程很容易:

create table mytable (col1 char(5), col2 char(5), theKey char(10))
insert into mytable values ('00001', '00001', 'some')
insert into mytable values ('00002', '00002', 'some')
insert into mytable values ('00003', '00003', 'some')
GO 

CREATE PROCEDURE sp_returning_dataset 
    @param1 char(10)
AS
BEGIN

    select col1, col2 from mytable where theKey=@param1

END
GO

--to test sp:
exec sp_returning_dataset 'some'

您只需确保从存储过程中只有一个选择'熄灭'。

棘手的部分是从c#/ VB执行存储过程。您必须声明存储过程的每个参数并将其添加到调用中:

using System.Data;
using System.Data.SqlClient;
....


SqlConnection  cn = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand();
command.Connection = cn;
command.CommandTimeout = cn.ConnectionTimeout;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "sp_returning_dataset";
SqlParameter param = new SqlParameter("@param1", SqlDbType.NText);
param.Value = myParam;
command.Parameters.Clear();
command.Parameters.Add(param);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
DataSet dataset = new DataSet();
adapter.Fill(dataset);
command.Connection.Close();
//do whatever with dataset:
...