1. 程式人生 > >用儲存過程進行新增與修改資料

用儲存過程進行新增與修改資料

--建立新增與修改的儲存過程
--省   create
--首先定義輸入與輸出引數
--例:@uID nvarchar(50)  輸入   @i int output 輸出
--然後定義臨時儲存變數,用於儲存資料庫查詢出來的資料(此步可省)
--接著進行判斷
--例:if Exists(select * from [user] where [email protected]) 根據ID進行查詢
-- 如果有資料,就進行修改操作


--  以下步驟可以省略  直接進行Update操作   此步操作避免多餘的Update
--select @Name=uName,@pwd=uPwd(給臨時變數賦值) from [user] where

[email protected]
--if((@[email protected]) and (@[email protected]))判斷使用者輸入與資料庫的值是否一樣
-- 如果一樣就不進行修改直接列印輸出
-- 否則就進行Update操作並列印輸出
--  以上步驟可以省略  直接進行Update操作


--    否則就進行新增並列印輸出




--使用儲存過程進行新增和修改
if object_id('proc_InsertORUpdate','p') is not null 
drop proc  proc_InsertORUpdate
go
create proc proc_InsertORUpdate
@uID nvarchar(50),
@uName  nvarchar(50),
@uPwd  nvarchar(50),
@i int output
as
declare 
@Name  nvarchar(50),
@pwd  nvarchar(50)
--根據ID進行查詢,如果有資料進入IF 
ifExists(select * from [user] where
[email protected]
)
begin 
--根據ID進行查詢,有資料給變數賦值
select @Name=uName,@pwd=uPwd from [user] where [email protected]
--如果傳進來的資料跟資料庫查詢出來的資料相同,就直接列印
if((@[email protected]) and (@[email protected]))
begin 
set @i=0
end 
else
begin 
--否則就進行修改
update [user] set [email protected],[email protected] where
[email protected]

set @i=2
end 
end
else--否則就進行新增
begin
insert into [user](uID,uName,uPwd)values(@uID,@uName,@uPwd)
set @i=1
end