SQLserver创建存储过程详细案例
时间: 2023-09-29 13:07:23 浏览: 58
好的,我可以给您一个简单的 SQL Server 存储过程的例子:
假设您有一个名为 `students` 的表格,其中包含 `id`、`name` 和 `age` 三个列。现在您需要编写一个存储过程,用于向该表格中插入一条新的学生记录。下面是一个简单的存储过程的示例代码:
```sql
CREATE PROCEDURE InsertStudent
@id INT,
@name VARCHAR(50),
@age INT
AS
BEGIN
INSERT INTO students (id, name, age)
VALUES (@id, @name, @age)
END
```
以上代码创建一个名为 `InsertStudent` 的存储过程,该存储过程接受三个参数:`id`、`name` 和 `age`。在存储过程中,使用 `INSERT INTO` 语句将这三个参数插入到 `students` 表格中。
要调用这个存储过程,您可以使用以下代码:
```sql
EXEC InsertStudent 1, 'Tom', 20
```
以上代码将向 `students` 表格中插入一个 `id` 为 1,`name` 为 'Tom',`age` 为 20 的记录。
当然,这只是一个简单的示例,您可以根据自己的需要编写更复杂的存储过程。如果您有任何问题,请随时提出。
相关问题
sqlserver 存储过程 案例
以下是一个简单的 SQL Server 存储过程示例,它从一个表中选择所有姓氏以 "S" 开头的人员,并返回结果集:
```
CREATE PROCEDURE GetPersonsByLastName
AS
BEGIN
SELECT * FROM Persons WHERE LastName LIKE 'S%'
END
GO
```
在上面的示例中,存储过程的名称为 GetPersonsByLastName,它没有参数,只包含一个简单的 SELECT 语句。要执行这个存储过程,可以使用以下代码:
```
EXEC GetPersonsByLastName
```
这将返回所有姓氏以 "S" 开头的人员的结果集。请注意,存储过程必须先使用 CREATE PROCEDURE 语句创建,然后才能执行。此外,存储过程中可以包含更复杂的逻辑和参数,以满足特定的业务需求。
sqlserver 存储过程 案例 有入参 出参
以下是一个带有输入参数和输出参数的 SQL Server 存储过程示例:
```sql
CREATE PROCEDURE GetPersonById
@Id INT,
@FirstName VARCHAR(50) OUTPUT,
@LastName VARCHAR(50) OUTPUT
AS
BEGIN
SELECT @FirstName = FirstName, @LastName = LastName
FROM Persons
WHERE Id = @Id
END
```
在上面的示例中,存储过程的名称为 GetPersonById,它包含一个输入参数 @Id,以及两个输出参数 @FirstName 和 @LastName。存储过程根据输入参数 @Id 获取相应的人员记录,并将结果赋值给输出参数 @FirstName 和 @LastName。
要在 SQL Server 中执行这个存储过程并获取输出参数的值,可以使用以下代码:
```sql
DECLARE @FirstName VARCHAR(50)
DECLARE @LastName VARCHAR(50)
EXEC GetPersonById @Id = 1, @FirstName = @FirstName OUTPUT, @LastName = @LastName OUTPUT
SELECT @FirstName, @LastName
```
在上面的示例中,我们声明了两个变量 @FirstName 和 @LastName,然后使用 EXECUTE 语句调用存储过程,并将输出参数 @FirstName 和 @LastName 的值分别赋值给这两个变量。最后,我们使用 SELECT 语句输出这两个变量的值。
如果要在 .NET Framework 或 .NET Core 中调用这个存储过程,可以使用 ADO.NET 中的 SqlCommand 对象和 SqlParameter 对象。以下是一个使用 C# 语言调用存储过程的示例:
```csharp
using System.Data.SqlClient;
public void GetPersonById(int id)
{
string connectionString = "Data Source=<server>;Initial Catalog=<database>;User ID=<username>;Password=<password>";
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand("GetPersonById", connection))
{
command.CommandType = System.Data.CommandType.StoredProcedure;
command.Parameters.AddWithValue("@Id", id);
SqlParameter firstNameParam = new SqlParameter("@FirstName", System.Data.SqlDbType.VarChar, 50);
firstNameParam.Direction = System.Data.ParameterDirection.Output;
command.Parameters.Add(firstNameParam);
SqlParameter lastNameParam = new SqlParameter("@LastName", System.Data.SqlDbType.VarChar, 50);
lastNameParam.Direction = System.Data.ParameterDirection.Output;
command.Parameters.Add(lastNameParam);
connection.Open();
command.ExecuteNonQuery();
string firstName = (string)firstNameParam.Value;
string lastName = (string)lastNameParam.Value;
Console.WriteLine($"First Name: {firstName}, Last Name: {lastName}");
connection.Close();
}
}
```
在上面的示例中,我们使用 SqlCommand 对象来创建连接和执行存储过程。我们设置 CommandText 属性为存储过程名称,并添加一个输入参数。然后,我们使用 SqlParameter 对象来添加两个输出参数,并将它们添加到 SqlCommand 对象的 Parameters 集合中。我们打开连接并执行命令,然后获取输出参数的值。最后,我们关闭连接。需要注意的是,连接字符串需要根据实际情况进行修改。