2011-06-05 123 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