Как ограничить вставку значения, которое уже существует в другой таблице - PullRequest
1 голос
/ 15 июня 2011

У меня есть 2 таблицы. Мне нужно проверить перед вставкой в ​​одну таблицу, если значение существует в другой таблице.

Ответы [ 3 ]

1 голос
/ 15 июня 2011

ЕСЛИ НЕ СУЩЕСТВУЕТ (ВЫБРАТЬ * ИЗ ТАБЛИЦЫ A ГДЕ Col1 = @Value) ВСТАВИТЬ В СТОЛБЦУ (Col1) SELECT @ Value

1 голос
/ 15 июня 2011

Я предлагаю сначала проверить записи, которые будут вставляться в каждый запрос.

Create Proc Testing
as
Set NoCount ON
Set XACT_ABORT ON

Begin Try
   Begin Tran
    IF Not Exists(SELECT 1 FROM Table2 i JOIN Table1 t ON i.key = t.key)
    Begin
         //Your insert statement
    END
   Commit Tran
End Try

Begin Catch
    Rollback Tran
End Catch
0 голосов
/ 15 июня 2011

Использование триггера INSERT возможно?

Я не очень уверен в синтаксисе.

CREATE TRIGGER InsertTableTrigger ON Table1 FOR INSERT
 AS
  BEGIN
    IF EXISTS ( SELECT 1 FROM Inserted i JOIN Table1 t ON i.key = t.key )
    BEGIN
        RAISERROR('Transaction Failed.',16,1)
        ROLLBACK TRAN "insert on Table1"
    END
  END
 GO

Вставка используется для доступа к вставляемым значениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...