sql server 存储过程的简单应用

CREATE TABLE [dbo].[账号表] (
    [Id] INT           IDENTITY (1, 1) NOT NULL,
    [账号] NVARCHAR (50) NOT NULL,
    [密码] NVARCHAR (50) NOT NULL,
    [姓名] NVARCHAR (50) NOT NULL,
    [权限] NVARCHAR (50) NOT NULL,
    [头像] NVARCHAR (50) NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);


CREATE TABLE [dbo].[操作记录] (
    [Id]   INT            IDENTITY (1, 1) NOT NULL,
    [时间]   DATETIME       DEFAULT (getdate()) NOT NULL,
    [记录类型] NVARCHAR (50)  NOT NULL,
    [操作人]  NVARCHAR (50)  NOT NULL,
    [名字]   NVARCHAR (50)  NOT NULL,
    [数量]   NVARCHAR (50)  NOT NULL,
    [额外信息] NVARCHAR (100) NOT NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);



CREATE PROC [dbo].[修改密码]
@账号s NVARCHAR (50),
@旧密码s NVARCHAR (50),
@新密码s NVARCHAR (50)
AS
begin
IF isnull((select TOP(1) 1 from 账号表 where 账号 = @账号s and 密码=@旧密码s),0)=0
   begin
  INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('修改密码失败',@账号s,@账号s,0,'');
   RETURN 0
   END
ELSE
    update 账号表 set 密码=@新密码s where 账号=@账号s
	  INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('修改密码成功',@账号s,@账号s,0,'密码从 ' + @旧密码s +' 修改为 ' + @新密码s);
    RETURN 1
end


CREATE PROC [dbo].[账号删除]
@账号s NVARCHAR (50),
@密码s NVARCHAR (50)
AS
begin
IF isnull((select TOP(1) 1 from 账号表 where 账号 = @账号s and 密码=@密码s),0)=0
   begin
   	  INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('账号删除失败',@账号s,@密码s,0,'密码不匹配');
  
  RETURN 0
   END
ELSE
 begin
    delete 账号表 where 账号=@账号s and 密码=@密码s
	 INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('账号删除成功',@账号s,@密码s,0,'删除了账号');
    RETURN 1
end
end


CREATE PROC [dbo].[账号注册]
@账号s NVARCHAR (50),
@密码s NVARCHAR (50),
@姓名s NVARCHAR (50)='',
@权限s NVARCHAR (50)='',
@头像s NVARCHAR (50)=''
AS
begin
IF isnull((select TOP(1) 1 from 账号表 where 账号 = @账号s),0)<>0
   begin
   	  INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('账号注册失败',@账号s,@姓名s,0,'重复注册账号');
  
   RETURN 0
   END
ELSE
 begin
    insert into 账号表(账号,密码,姓名,权限,头像) values (@账号s,@密码s,@姓名s,@权限s,@头像s)
	 INSERT INTO 操作记录(记录类型,操作人,名字,数量,额外信息) VALUES ('账号注册成功',@账号s,@姓名s,0,'注册了账号,密码是' + @密码s);
    RETURN 1
end
end


--DECLARE @a int;
--exec @a=修改密码 11,22,33
--select @a
exec 账号删除 '账号','密码'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server 存储过程可以通过应用程序中的数据库连接对象来调用和执行。在应用程序中,你可以使用以下步骤来调用存储过程: 1. 建立与数据库的连接 2. 创建一个 SQLCommand 对象 3. 设置 SQLCommand 的属性,包括 CommandText(存储过程名称)和 CommandType(设置为 StoredProcedure) 4. 添加任何必要的输入参数和输出参数 5. 执行 SQLCommand,并接收返回的结果(如果有) 下面是一个示例代码片段,演示如何使用 C# 中的 SqlConnection 和 SqlCommand 对象来调用存储过程: ```csharp using System.Data.SqlClient; // 建立数据库连接 SqlConnection conn = new SqlConnection("Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"); conn.Open(); // 创建 SQLCommand 对象 SqlCommand cmd = new SqlCommand("myStoredProcedure", conn); cmd.CommandType = CommandType.StoredProcedure; // 添加输入参数 cmd.Parameters.AddWithValue("@inputParam1", "value1"); cmd.Parameters.AddWithValue("@inputParam2", "value2"); // 添加输出参数 SqlParameter outputParam = new SqlParameter("@outputParam", SqlDbType.NVarChar, 50); outputParam.Direction = ParameterDirection.Output; cmd.Parameters.Add(outputParam); // 执行存储过程并接收返回结果 cmd.ExecuteNonQuery(); string outputValue = cmd.Parameters["@outputParam"].Value.ToString(); // 关闭连接 conn.Close(); ``` 在上面的示例中,我们使用 SqlConnection 对象建立了与数据库的连接,并创建了一个 SqlCommand 对象来调用名为 "myStoredProcedure" 的存储过程。我们还添加了两个输入参数 "@inputParam1" 和 "@inputParam2",以及一个输出参数 "@outputParam"。最后,我们执行了 SqlCommand 对象并接收了存储过程返回的输出参数值。 你可以根据自己的需要修改这个示例代码来适应你的具体情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值