Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

insérer un enregistrement dans une table en copiant une seule ligne d'une seule colonne d'une autre table

Vous ne pouvez pas avoir deux clauses WHERE en une seule déclaration :

insert into RECEIVE(Aname , Permission)
  select Aname , 'select' 
  from SEND
  WHERE Aname = 'GREAME'   <=== WHERE #1
  where not exists         <=== WHERE #2
    (select *  from RECEIVE where aname = 'GREAME' and Permission = 'select')

Vous devez remplacer la deuxième partie par un ET :

insert into RECEIVE(Aname , Permission)
  select Aname , 'select' 
  from SEND
  WHERE Aname = 'GREAME'  
  AND not exists
    (select *  from RECEIVE where aname = 'GREAME' and Permission = 'select')