SQL插入如果与另一列不存在

时间:2016-12-21 05:21:32

标签: sql sql-server sql-server-2014

我有以下脚本,如果用户位于USEROUTMOMUSER中不存在,则会在USEROUT中创建记录。但是,我需要在名为USEROUT的{​​{1}}中再检查一个列,以确保我们创建记录,如果用户还没有FILENAME中的记录器来填写FILENAME {{ 1}} ...尝试了很多东西 - 任何想法?

USEROUT

2 个答案:

答案 0 :(得分:1)

  If  NOT EXISTS ( SELECT 1 FROM USEROUT WHERE CUSER = MOMUSER.CODE AND FILENAME = 'FORM.FRX')
      Begin
           INSERT INTO USEROUT (CUSER, FILENAME)
           SELECT MOMUSER.CODE, 'FORM.FRX'
           FROM MOMUSER
      End

您也可以使用此查询。

答案 1 :(得分:0)

使用Not Exists并获得所需的结果:

  INSERT INTO USEROUT (CUSER, FILENAME)
  SELECT MOMUSER.CODE, 'FORM.FRX'
  FROM MOMUSER
  WHERE NOT EXISTS
  ( SELECT 1 FROM USEROUT WHERE CUSER = MOMUSER.CODE AND FILENAME = 'FORM.FRX')