Проверка SQL, если существует до обновления
Привет всем Я хотел бы увидеть пример того, как проверить, существует ли pappssn в базе данных до завершения обновления. Если это так, чтобы поднять запись об ошибке существует. Мой интерфейс VB, однако я хотел бы обработать это в 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
1 ответ
Решение
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