我是SQL Server新手。
在SQL Server中使用存储过程可以帮助我将表数据作为数据集返回吗?
任何人都可以帮忙解释如何编写存储过程吗?
答案 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:
...