1. 程式人生 > 資料庫 >sql server 儲存過程的簡單應用

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,[時間]   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,'');
   RETURN 0
   END
ELSE
    update 賬號表 set 密碼=@新密碼s where 賬號=@賬號s
	  INSERT INTO 操作記錄(記錄型別,額外資訊) VALUES ('修改密碼成功','密碼從 ' + @舊密碼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,'密碼不匹配');
  
  RETURN 0
   END
ELSE
 begin
    delete 賬號表 where 賬號=@賬號s and 密碼=@密碼s
	 INSERT INTO 操作記錄(記錄型別,額外資訊) VALUES ('賬號刪除成功','刪除了賬號');
    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,'重複註冊賬號');
  
   RETURN 0
   END
ELSE
 begin
    insert into 賬號表(賬號,密碼,姓名,許可權,頭像) values (@賬號s,@許可權s,@頭像s)
	 INSERT INTO 操作記錄(記錄型別,額外資訊) VALUES ('賬號註冊成功','註冊了賬號,密碼是' + @密碼s);
    RETURN 1
end
end


--DECLARE @a int;
--exec @a=修改密碼 11,22,33
--select @a
exec 賬號刪除 '賬號','密碼'