sql server 儲存過程的簡單應用
阿新 • • 發佈:2020-03-02
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 賬號刪除 '賬號','密碼'