2011-06-05 183 views
2

你好我希望看到一個例子,說明如何在更新完成之前檢查數據庫中是否存在pappssn。如果是這樣,以提高錯誤記錄exsist。我的前端是VB,但是如果可能的話,我想在我的存儲過程的SQL中處理這個。有任何想法嗎?SQL檢查更新前是否存在

ALTER Procedure [dbo].[usp_insertmemapp](
@pappfname nvarchar(50), 
@pappmname nvarchar(50), 
@papplname nvarchar(50), 
@pappwedding nvarchar(50), 
@pappstateresidence nvarchar(50), 
@pappstreet nvarchar(50), 
@pappcity nvarchar(50), 
@pappstate char(2), 
@pappzip char(6), 
@papphomephone nvarchar (13), 
@pappfax nvarchar (13), 
@pappaltstreet nvarchar(13), 
@pappaltcity nvarchar(25), 
@pappaltstate char(2), 
@pappaltzip char(6), 
@pappalthomephone nvarchar (13), 
@pappaltfax nvarchar(13), 
@pappssn char(11), 
@pappdob nvarchar(50), 
@pappcell nvarchar(13), 
@pappemail nvarchar(50), 


BEGIN TRY 
BEGIN TRANSACTION 

INSERT INTO [a_abacus].[dbo].[primaryapplicant] 
VALUES(
@pappfname,@pappmname,@papplname,@pappwedding,@pappstateresidence,@pappstreet,@pappcity,@pappstate, 
@pappzip,@papphomephone,@pappfax,@pappaltstreet,@pappaltcity,@pappaltstate, 
@pappaltzip,@pappalthomephone,@pappaltfax,@pappssn,@pappdob,@pappcell,@pappemail, 


Commit Transaction 
END TRY 
BEGIN CATCH 
ROLLBACK 
END CATCH 
+0

爲什麼使用事務只是一個插件?我想知道 – 2011-06-05 10:05:54

+0

你好亞當我沒有一個插入我剛剛發佈了約2%的實際代碼。 – Tim 2011-06-05 23:02:52

回答

3
ALTER Procedure [dbo].[usp_insertmemapp](
@pappfname nvarchar(50), 
@pappmname nvarchar(50), 
@papplname nvarchar(50), 
@pappwedding nvarchar(50), 
@pappstateresidence nvarchar(50), 
@pappstreet nvarchar(50), 
@pappcity nvarchar(50), 
@pappstate char(2), 
@pappzip char(6), 
@papphomephone nvarchar (13), 
@pappfax nvarchar (13), 
@pappaltstreet nvarchar(13), 
@pappaltcity nvarchar(25), 
@pappaltstate char(2), 
@pappaltzip char(6), 
@pappalthomephone nvarchar (13), 
@pappaltfax nvarchar(13), 
@pappssn char(11), 
@pappdob nvarchar(50), 
@pappcell nvarchar(13), 
@pappemail nvarchar(50), 


BEGIN TRY 
BEGIN TRANSACTION 

-- this is the important change... 
IF NOT EXISTS (SELECT pappssn FROM a_abacus WHERE pappssn = @pappssn) 

    INSERT INTO [a_abacus].[dbo].[primaryapplicant] 
    VALUES(
    @pappfname,@pappmname,@papplname,@pappwedding,@pappstateresidence,@pappstreet,@pappcity,@pappstate, 
    @pappzip,@papphomephone,@pappfax,@pappaltstreet,@pappaltcity,@pappaltstate, 
    @pappaltzip,@pappalthomephone,@pappaltfax,@pappssn,@pappdob,@pappcell,@pappemail, 

Commit Transaction 
END TRY 
BEGIN CATCH 
ROLLBACK 
END CATCH