📜  在 sql server 中执行 sp - SQL (1)

📅  最后修改于: 2023-12-03 15:07:49.488000             🧑  作者: Mango

在 SQL Server 中执行 sp - SQL

在 SQL Server 中,SP是存储过程的缩写。SP是一组预定义的T-SQL语句,以便在需要时使用。SP可以接收参数、执行复杂的逻辑,并返回结果。

SP的优势
  • 提高性能:SP可以预编译,并缓存在SQL Server实例中,因此,与直接在应用程序中执行SQL语句相比,SP的执行速度更快。
  • 优化数据库管理:SP可以像一种API一样使用,使数据库管理更加简单。
  • 提高安全性:SP允许授权只对SP进行访问,而不直接授权给数据库中的表。
在 SQL Server 中创建SP

使用CREATE PROCEDURE语句创建SP。以下是一个在SQL Server中创建SP的示例:

CREATE PROCEDURE SalesByProduct
    @startdate datetime,
    @enddate   datetime
AS
SELECT productid, salespersonid, sum(quantity) as 'Total sales'
FROM sales
WHERE saledate BETWEEN @startdate and @enddate
GROUP BY productid, salespersonid
在 SQL Server 中执行SP

使用EXECUTE语句来执行SP。以下是一个在SQL Server中执行SP的示例:

EXECUTE SalesByProduct '2018-01-01', '2018-12-31';
在 C# 中执行SP

以下是在C#中执行SP的示例代码:

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

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string connString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
            string spName = "SalesByProduct";

            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand cmd = new SqlCommand(spName))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@startdate", DateTime.Parse("2018-01-01"));
                    cmd.Parameters.AddWithValue("@enddate", DateTime.Parse("2018-12-31"));
                    cmd.Connection = conn;

                    conn.Open();

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine(reader["productid"].ToString() + " " +
                                              reader["salespersonid"].ToString() + " " +
                                              reader["Total sales"].ToString());
                        }
                    }
                }
            }
        }
    }
}
总结

使用SP可以提高性能,优化数据库管理,提高安全性。在创建SP时,使用CREATE PROCEDURE语句。在执行SP时,使用EXECUTE语句。在C#中执行SP时,使用SqlCommand对象和参数。